<?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>217623</bug_id>
          
          <creation_ts>2020-10-12 11:01:43 -0700</creation_ts>
          <short_desc>CSSStyleDeclaration breaks JS spec (properties not showing up in Object.getOwnPropertyNames)</short_desc>
          <delta_ts>2021-04-12 10:43:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=217626</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=217627</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=217622</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=218849</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>217667</dependson>
    
    <dependson>217776</dependson>
    
    <dependson>218525</dependson>
    
    <dependson>222517</dependson>
    
    <dependson>222518</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Sneddon [:gsnedders]">gsnedders</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>alecflett</cc>
    
    <cc>annulen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>emilio</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joepeck</cc>
    
    <cc>jsbell</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1696942</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2020-10-12 11:01:43 -0700</bug_when>
    <thetext>&gt; &quot;-webkit-border-before&quot; in document.body.style
&lt; true
&gt; document.body.style.hasOwnProperty(&quot;-webkit-border-before&quot;)
&lt; true
&gt; Object.keys(document.body.style).indexOf(&quot;-webkit-border-before&quot;)
&lt; -1
&gt; Object.getOwnPropertyNames(document.body.style).indexOf(&quot;-webkit-border-before&quot;)
&lt; -1
&gt; Object.getOwnPropertyNames(document.body.style.__proto__).indexOf(&quot;-webkit-border-before&quot;)
&lt; -1
&gt; Object.getOwnPropertyNames(document.body.style.__proto__.__proto__).indexOf(&quot;-webkit-border-before&quot;)
&lt; -1

Note that the JS spec says for [[OwnPropertyKeys]] ( ), as an invariant:

&gt; The returned List must contain at least the keys of all non-configurable own properties that have previously been observed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696966</commentid>
    <comment_count>1</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-12 11:51:27 -0700</bug_when>
    <thetext>This is intertwined with this silly comment I made a few years ago (see https://trac.webkit.org/changeset/219622/webkit) in CSSStyleDeclaration.idl

`
    // Use named getters/setters for all support CSS property names. The spec says
    // these should be normal attributes, but there are too many combinations with
    // prefixes for this to be practical. If we remove legacy aliases, we should
    // reconsider this decision.
    getter (DOMString or double) (DOMString name);
    [CEReactions, CallNamedSetterOnlyForSupportedProperties] setter undefined (DOMString name, [LegacyNullToEmptyString] DOMString value);
`

The easiest (and perhaps best) way to fix this is generate a supplemental IDL file from CSSProperties.json and pass that to the bindings generator using the various rules from https://drafts.csswg.org/cssom/#the-cssstyledeclaration-interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697575</commentid>
    <comment_count>2</comment_count>
      <attachid>411289</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-13 18:25:21 -0700</bug_when>
    <thetext>Created attachment 411289
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697585</commentid>
    <comment_count>3</comment_count>
      <attachid>411292</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-13 18:57:33 -0700</bug_when>
    <thetext>Created attachment 411292
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697586</commentid>
    <comment_count>4</comment_count>
      <attachid>411293</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-13 19:18:59 -0700</bug_when>
    <thetext>Created attachment 411293
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697670</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2020-10-14 04:45:33 -0700</bug_when>
    <thetext>&quot;See also&quot;-ing the other bugs that should hopefully be fixed by Sam&apos;s rewrite of the bindings code.

Also, Sam, can you review https://github.com/web-platform-tests/wpt/pull/26086 and https://github.com/web-platform-tests/wpt/pull/26082 as part of this? Should probably write a separate test for the Object.keys() issue described above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697762</commentid>
    <comment_count>6</comment_count>
      <attachid>411340</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-14 10:03:16 -0700</bug_when>
    <thetext>Created attachment 411340
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697784</commentid>
    <comment_count>7</comment_count>
      <attachid>411349</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-14 10:52:53 -0700</bug_when>
    <thetext>Created attachment 411349
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697825</commentid>
    <comment_count>8</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-14 12:18:48 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #7)
&gt; Created attachment 411349 [details]
&gt; Patch

Now we are getting somewhere. 1 progression, 7 regressions. Some notes on the failures:

- Got to decide if we want to keep the weird css/pixel/pos prefixed variants.
- We currently support things like &quot;element.style.epubCaptionSide&quot;, where epub has a lowercase &quot;e&quot;. This seems to be non-standard, with the standard suggesting this should be &quot;element.style.EpubCaptionSide&quot;.
- We have at least one test of the iteration order, which is not something is defined for IDL members, so I am not sure we need to maintain that.

Need to look into the rest more closely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697827</commentid>
    <comment_count>9</comment_count>
      <attachid>411363</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-14 12:19:46 -0700</bug_when>
    <thetext>Created attachment 411363
CSSStyleDeclaration+PropertyNames.idl

If anyone is interested, here is the generated IDL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698000</commentid>
    <comment_count>10</comment_count>
      <attachid>411395</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-14 19:30:33 -0700</bug_when>
    <thetext>Created attachment 411395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698046</commentid>
    <comment_count>11</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2020-10-15 03:13:27 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #8)
&gt; - Got to decide if we want to keep the weird css/pixel/pos prefixed variants.

If it&apos;s easy to keep them I think I&apos;d rather do that as a later change (or an earlier change!)?

&gt; - We currently support things like &quot;element.style.epubCaptionSide&quot;, where
&gt; epub has a lowercase &quot;e&quot;. This seems to be non-standard, with the standard
&gt; suggesting this should be &quot;element.style.EpubCaptionSide&quot;.

While Chrome used to expose epubCaptionSide, they seem to only expose &quot;-epub-caption-side&quot; and now? So maybe we can drop epubCaptionSide?

&gt; - We have at least one test of the iteration order, which is not something
&gt; is defined for IDL members, so I am not sure we need to maintain that.

Us and Chrome seem pretty similar in enumeration order today, whereas Firefox seems a bit all over the place. Not sure it matters too much?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698150</commentid>
    <comment_count>12</comment_count>
      <attachid>411449</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-15 10:00:09 -0700</bug_when>
    <thetext>Created attachment 411449
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698155</commentid>
    <comment_count>13</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-15 10:05:50 -0700</bug_when>
    <thetext>(In reply to Sam Sneddon [:gsnedders] from comment #11)
&gt; (In reply to Sam Weinig from comment #8)
&gt; &gt; - Got to decide if we want to keep the weird css/pixel/pos prefixed variants.
&gt; 
&gt; If it&apos;s easy to keep them I think I&apos;d rather do that as a later change (or
&gt; an earlier change!)?

I&apos;m going to definitely keep them for this change but I think we should consider dropping them (it&apos;s better to drop them after the refactor as a separate step, since if we have to bring them back, we don&apos;t have to figure out how to make them work in the new system later on).

&gt; 
&gt; &gt; - We currently support things like &quot;element.style.epubCaptionSide&quot;, where
&gt; &gt; epub has a lowercase &quot;e&quot;. This seems to be non-standard, with the standard
&gt; &gt; suggesting this should be &quot;element.style.EpubCaptionSide&quot;.
&gt; 
&gt; While Chrome used to expose epubCaptionSide, they seem to only expose
&gt; &quot;-epub-caption-side&quot; and now? So maybe we can drop epubCaptionSide?

Do they expose element.style.EpubCaptionSide (with a capital E)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698157</commentid>
    <comment_count>14</comment_count>
      <attachid>411453</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-15 10:10:05 -0700</bug_when>
    <thetext>Created attachment 411453
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698160</commentid>
    <comment_count>15</comment_count>
      <attachid>411454</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-15 10:12:37 -0700</bug_when>
    <thetext>Created attachment 411454
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698170</commentid>
    <comment_count>16</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2020-10-15 10:33:14 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #13)
&gt; (In reply to Sam Sneddon [:gsnedders] from comment #11)
&gt; &gt; (In reply to Sam Weinig from comment #8)
&gt; &gt; &gt; - We currently support things like &quot;element.style.epubCaptionSide&quot;, where
&gt; &gt; &gt; epub has a lowercase &quot;e&quot;. This seems to be non-standard, with the standard
&gt; &gt; &gt; suggesting this should be &quot;element.style.EpubCaptionSide&quot;.
&gt; &gt; 
&gt; &gt; While Chrome used to expose epubCaptionSide, they seem to only expose
&gt; &gt; &quot;-epub-caption-side&quot; and now? So maybe we can drop epubCaptionSide?
&gt; 
&gt; Do they expose element.style.EpubCaptionSide (with a capital E)?

https://wpt.fyi/results/css/css-conditional/js/CSS-supports-CSSStyleDeclaration.html?label=pr_head&amp;max-count=1&amp;pr=26086 shows they only support -epub-caption-side and not EpubCaptionSide. (Plz review the PR!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698190</commentid>
    <comment_count>17</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-15 11:11:23 -0700</bug_when>
    <thetext>(In reply to Sam Sneddon [:gsnedders] from comment #16)
&gt; (In reply to Sam Weinig from comment #13)
&gt; &gt; (In reply to Sam Sneddon [:gsnedders] from comment #11)
&gt; &gt; &gt; (In reply to Sam Weinig from comment #8)
&gt; &gt; &gt; &gt; - We currently support things like &quot;element.style.epubCaptionSide&quot;, where
&gt; &gt; &gt; &gt; epub has a lowercase &quot;e&quot;. This seems to be non-standard, with the standard
&gt; &gt; &gt; &gt; suggesting this should be &quot;element.style.EpubCaptionSide&quot;.
&gt; &gt; &gt; 
&gt; &gt; &gt; While Chrome used to expose epubCaptionSide, they seem to only expose
&gt; &gt; &gt; &quot;-epub-caption-side&quot; and now? So maybe we can drop epubCaptionSide?
&gt; &gt; 
&gt; &gt; Do they expose element.style.EpubCaptionSide (with a capital E)?
&gt; 
&gt; https://wpt.fyi/results/css/css-conditional/js/CSS-supports-
&gt; CSSStyleDeclaration.html?label=pr_head&amp;max-count=1&amp;pr=26086 shows they only
&gt; support -epub-caption-side and not EpubCaptionSide. (Plz review the PR!)

Hey Sam, I&apos;m not exactly sure what you mean by review the PR. I don&apos;t think I am reviewer on that project. Can anyone review things?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698236</commentid>
    <comment_count>18</comment_count>
      <attachid>411475</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-15 12:56:45 -0700</bug_when>
    <thetext>Created attachment 411475
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698241</commentid>
    <comment_count>19</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-15 13:09:33 -0700</bug_when>
    <thetext>Split out bindings mangling changes into 217776.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698258</commentid>
    <comment_count>20</comment_count>
      <attachid>411481</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-15 13:46:27 -0700</bug_when>
    <thetext>Created attachment 411481
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698318</commentid>
    <comment_count>21</comment_count>
      <attachid>411481</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-15 15:27:42 -0700</bug_when>
    <thetext>Comment on attachment 411481
Patch

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

&gt; Source/WebCore/DerivedSources.make:1422
&gt; +    CSSStyleDeclaration+PropertyNames.idl \

Maybe we should use $(CSS_PROPERTY_NAME_FILES) here to make this rule a little less long.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3967
&gt; +    return $param if $param =~ /^CSSOM/;

Maybe we should switch to this approach for some of the other prefixes later?

&gt; Source/WebCore/css/CSSStyleDeclaration.cpp:309
&gt; +    String stringValue = WTF::switchOn(value, [&amp;] (const auto&amp; input) {

auto?

&gt; Source/WebCore/css/CSSStyleDeclaration.h:75
&gt; +    ExceptionOr&lt;void&gt; setPropertyValueInternal(CSSPropertyID, String);

How did you decide on String vs. const String&amp; here?

&gt; Source/WebCore/css/CSSStyleDeclaration.h:77
&gt; +    ExceptionOr&lt;void&gt; setPropertyValueInternalForPosOrPixelPrefixed(CSSPropertyID, Variant&lt;double, String&gt;);

How did you decide on Variant vs. const Variant&amp; here?

&gt; LayoutTests/ChangeLog:13
&gt; +        Remove tests for iteration order, which is not standardized, and not consistent among
&gt; +        browsers.

Makes me a little sad; since someone could rely on the order by accident, wouldn’t there be some value in standardizing it, working towards being consistent among browsers some day, and testing that it matches what we propose for the standard?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698324</commentid>
    <comment_count>22</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2020-10-15 15:48:36 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #21)

&gt; Makes me a little sad; since someone could rely on the order by accident,
&gt; wouldn’t there be some value in standardizing it, working towards being
&gt; consistent among browsers some day, and testing that it matches what we
&gt; propose for the standard?

This is partly covered by https://github.com/heycam/webidl/issues/432 and partly by CSSOM not defining what order the attributes are generated in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698337</commentid>
    <comment_count>23</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-15 16:04:43 -0700</bug_when>
    <thetext>When I say &quot;removing tests makes me a little sad&quot;, it’s more than just annoyed that we don’t have order specified, and the risk that posts for interoperability. It’s also that I like tests to help us keep our behavior stable, which does not require that the behavior be specified or standardized. So that part of removing the tests makes me sad too. Standards are very important, but they don’t necessarily constrain what we should test!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698338</commentid>
    <comment_count>24</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-15 16:04:57 -0700</bug_when>
    <thetext>posts -&gt; poses</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698346</commentid>
    <comment_count>25</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-15 16:12:42 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #21)
&gt; Comment on attachment 411481 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=411481&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/DerivedSources.make:1422
&gt; &gt; +    CSSStyleDeclaration+PropertyNames.idl \
&gt; 
&gt; Maybe we should use $(CSS_PROPERTY_NAME_FILES) here to make this rule a
&gt; little less long.

Good idea.

&gt; 
&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3967
&gt; &gt; +    return $param if $param =~ /^CSSOM/;
&gt; 
&gt; Maybe we should switch to this approach for some of the other prefixes later?

Yeah. We need to make this more straightforward.

&gt; 
&gt; &gt; Source/WebCore/css/CSSStyleDeclaration.cpp:309
&gt; &gt; +    String stringValue = WTF::switchOn(value, [&amp;] (const auto&amp; input) {
&gt; 
&gt; auto?

Done.

&gt; 
&gt; &gt; Source/WebCore/css/CSSStyleDeclaration.h:75
&gt; &gt; +    ExceptionOr&lt;void&gt; setPropertyValueInternal(CSSPropertyID, String);
&gt; 
&gt; How did you decide on String vs. const String&amp; here?
&gt; 
&gt; &gt; Source/WebCore/css/CSSStyleDeclaration.h:77
&gt; &gt; +    ExceptionOr&lt;void&gt; setPropertyValueInternalForPosOrPixelPrefixed(CSSPropertyID, Variant&lt;double, String&gt;);
&gt; 
&gt; How did you decide on Variant vs. const Variant&amp; here?

For both of these I don&apos;t have a good rule of thumb here. Currently the bindings always WTFMove() into implementation arguments, so it seemed like the right thing to do. But I would love to have a better rule / intuition on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698365</commentid>
    <comment_count>26</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-15 16:42:29 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #23)
&gt; When I say &quot;removing tests makes me a little sad&quot;, it’s more than just
&gt; annoyed that we don’t have order specified, and the risk that posts for
&gt; interoperability. It’s also that I like tests to help us keep our behavior
&gt; stable, which does not require that the behavior be specified or
&gt; standardized. So that part of removing the tests makes me sad too. Standards
&gt; are very important, but they don’t necessarily constrain what we should test!

I&apos;ve been trying to come up with a way to test iteration order stability for WebKit that isn&apos;t a pain. The problem with many of the existing tests has been that each port needed separate results since some properties were enabled and some were not. I think maybe doing based on some of the Internal only interfaces that we expose for WebKitTestRunner might be a good way, as we could make sure to exercise all the variables. 

In this case, port specific properties were actually not the issue (though if I printed them all out it would be). But rather, the tests relied on false assumptions like nothing in the iteration order would sort below the string &quot;0&quot; (that was domListEnumeration.html) or that they should be sorted alphabetically, both because the old implementation explicitly provided a sorted list of properties. Now the implementation is using the same behavior we have for all other IDLs, which is things iterate in the order they are declared in the IDL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698369</commentid>
    <comment_count>27</comment_count>
      <attachid>411509</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-15 16:48:37 -0700</bug_when>
    <thetext>Created attachment 411509
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698372</commentid>
    <comment_count>28</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-15 16:50:07 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #25)
&gt; (In reply to Darin Adler from comment #21)
&gt; &gt; Comment on attachment 411481 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=411481&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/DerivedSources.make:1422
&gt; &gt; &gt; +    CSSStyleDeclaration+PropertyNames.idl \
&gt; &gt; 
&gt; &gt; Maybe we should use $(CSS_PROPERTY_NAME_FILES) here to make this rule a
&gt; &gt; little less long.
&gt; 
&gt; Good idea.
&gt; 

I couldn&apos;t quite work out how to make this work, my make-fu continues to be less than stellar. Will try to clean it up along with some others that are duplicated though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698398</commentid>
    <comment_count>29</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-15 17:28:21 -0700</bug_when>
    <thetext>Committed r268564: &lt;https://trac.webkit.org/changeset/268564&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411509.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698399</commentid>
    <comment_count>30</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-15 17:29:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/70359261&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698408</commentid>
    <comment_count>31</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-15 17:43:14 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #26)
&gt; things iterate in the order they are declared in the IDL

So our new form of test that should be not too hard to maintain would be a based on a list of property names in the order they should appear *allowing missing properties*. If you agree that a test is still valuable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698867</commentid>
    <comment_count>32</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-16 19:46:01 -0700</bug_when>
    <thetext>I can imagine a type of test where we list things in the order we expect to see them and use a trailing &quot;?&quot; to indicate items that may be omitted without failing the list. Then carefully design the test output so that it is unlikely to require different baselines even if there are some failures as long as they are the same failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701475</commentid>
    <comment_count>33</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-10-26 09:37:12 -0700</bug_when>
    <thetext>As mentioned on Slack, this change resulted in a substantial build time regression (1 minute for production builds).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1701510</commentid>
    <comment_count>34</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-26 10:24:49 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #33)
&gt; As mentioned on Slack, this change resulted in a substantial build time
&gt; regression (1 minute for production builds).

The regression has been partially addressed by https://trac.webkit.org/changeset/268957/webkit and https://trac.webkit.org/changeset/268962/webkit.

I am waiting for credentials to sync so I can get more data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703793</commentid>
    <comment_count>35</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-11-02 19:23:42 -0800</bug_when>
    <thetext>This also made WebCore 9% larger.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704073</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-11-03 10:43:20 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 218525</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728170</commentid>
    <comment_count>37</comment_count>
    <who name="Emilio Cobos Álvarez (:emilio)">emilio</who>
    <bug_when>2021-02-11 10:58:55 -0800</bug_when>
    <thetext>Should this reland now that the blocking bug is fixed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728172</commentid>
    <comment_count>38</comment_count>
    <who name="Emilio Cobos Álvarez (:emilio)">emilio</who>
    <bug_when>2021-02-11 10:59:54 -0800</bug_when>
    <thetext>Ah lol, blocking bug was fixed by revert :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734228</commentid>
    <comment_count>39</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-27 14:08:05 -0800</bug_when>
    <thetext>Filed https://bugs.webkit.org/show_bug.cgi?id=222517, to re-land this change behind an #ifdef to allow iteration on it in the tree without negatively affecting compile time or binary size.

Once landed, we can iterate on reducing the regression and once it is gone, enable it for real.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734237</commentid>
    <comment_count>40</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-27 15:13:44 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #39)
&gt; Filed https://bugs.webkit.org/show_bug.cgi?id=222517, to re-land this change
&gt; behind an #ifdef to allow iteration on it in the tree without negatively
&gt; affecting compile time or binary size.
&gt; 
&gt; Once landed, we can iterate on reducing the regression and once it is gone,
&gt; enable it for real.

Will use https://bugs.webkit.org/show_bug.cgi?id=222518 to track finding a solution that does not regress things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749278</commentid>
    <comment_count>41</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-04-12 10:43:17 -0700</bug_when>
    <thetext>This is now fixed with &lt;https://commits.webkit.org/236379@main&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411289</attachid>
            <date>2020-10-13 18:25:21 -0700</date>
            <delta_ts>2020-10-13 18:58:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217623-20201013182520.patch</filename>
            <type>text/plain</type>
            <size>14375</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2ODQ0MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDIwLTEwLTEzICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIGJy
ZWFrcyBKUyBzcGVjIChwcm9wZXJ0aWVzIG5vdCBzaG93aW5nIHVwIGluIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eU5hbWVzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE3NjIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW1dJUF0KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG06CisgICAgICAgIChHZW5lcmF0ZUF0dHJpYnV0ZUdldHRlckJvZHlEZWZpbml0aW9uKToK
KyAgICAgICAgKEdlbmVyYXRlQXR0cmlidXRlU2V0dGVyQm9keURlZmluaXRpb24pOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uOgorICAgICAgICAqIGNzcy9D
U1NTdHlsZURlY2xhcmF0aW9uLmlkbDoKKyAgICAgICAgKiBjc3MvbWFrZXByb3AucGw6CisgICAg
ICAgIChjc3NQcm9wZXJ0eVRvSURMQXR0cmlidXRlKToKKwogMjAyMC0xMC0xMyAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFBhaW50IENTUyBoaWdo
bGlnaHRzIG92ZXIgaW1hZ2VzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjY4
NDM5KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTE4NzksNyArMTg3OSw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke1dlYkNvcmVf
REUKIAogIyBHZW5lcmF0ZSBDU1MgcHJvcGVydHkgbmFtZXMKIGFkZF9jdXN0b21fY29tbWFuZCgK
LSAgICBPVVRQVVQgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1Byb3BlcnRpZXMu
anNvbiAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5oICR7
V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVzLmNwcCAke1dlYkNv
cmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5ncGVyZiAke1dlYkNvcmVf
REVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVCdWlsZGVyR2VuZXJhdGVkLmNwcCAke1dlYkNvcmVf
REVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5oICR7
V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rp
b25zLmNwcAorICAgIE9VVFBVVCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJv
cGVydGllcy5qc29uICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5h
bWVzLmggJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1Byb3BlcnR5TmFtZXMuY3Bw
ICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVzLmdwZXJmICR7
V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZUJ1aWxkZXJHZW5lcmF0ZWQuY3BwICR7
V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rp
b25zLmggJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0eWxlUHJvcGVydHlTaG9ydGhh
bmRGdW5jdGlvbnMuY3BwICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NTdHlsZURl
Y2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsCiAgICAgTUFJTl9ERVBFTkRFTkNZICR7V0VCQ09S
RV9ESVJ9L2Nzcy9tYWtlcHJvcC5wbAogICAgIERFUEVORFMgJHtXZWJDb3JlX0NTU19QUk9QRVJU
WV9OQU1FU30KICAgICBXT1JLSU5HX0RJUkVDVE9SWSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VT
X0RJUn0KQEAgLTE4ODksNiArMTg4OSw3IEBAIGFkZF9jdXN0b21fY29tbWFuZCgKIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUyAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJv
cGVydHlOYW1lcy5jcHApCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtXZWJDb3JlX0RF
UklWRURfU09VUkNFU19ESVJ9L1N0eWxlQnVpbGRlckdlbmVyYXRlZC5jcHApCiBsaXN0KEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0eWxlUHJv
cGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwKQorbGlzdChBUFBFTkQgV2ViQ29yZV9JRExfRklM
RVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1N0eWxlRGVjbGFyYXRpb24rUHJv
cGVydHlOYW1lcy5pZGwpCiBBRERfU09VUkNFX1dFQkNPUkVfREVSSVZFRF9ERVBFTkRFTkNJRVMo
JHtXRUJDT1JFX0RJUn0vY3NzL0NTU1BhcnNlci5jcHAgQ1NTVmFsdWVLZXl3b3Jkcy5oKQogCiAj
IEdlbmVyYXRlIENTUyB2YWx1ZSBrZXl3b3JkcwpJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCShyZXZpc2lvbiAyNjg0MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xMzI3LDYgKzEzMjcsNyBAQCBKU19CSU5ESU5HX0lE
TFMgPSBcCiAgICAgJChXZWJDb3JlKS94bWwvWFBhdGhSZXN1bHQuaWRsIFwKICAgICAkKFdlYkNv
cmUpL3htbC9YU0xUUHJvY2Vzc29yLmlkbCBcCiAgICAgSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRl
ZC5pZGwgXAorICAgIENTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5pZGwgXAogIwog
CiAjIC0tLS0tLS0tCkBAIC0xNDQ1LDYgKzE0NDYsNyBAQCBDU1NfUFJPUEVSVFlfTkFNRV9GSUxF
UyA9IFwKICAgICBTdHlsZUJ1aWxkZXJHZW5lcmF0ZWQuY3BwIFwKICAgICBTdHlsZVByb3BlcnR5
U2hvcnRoYW5kRnVuY3Rpb25zLmNwcCBcCiAgICAgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0
aW9ucy5oIFwKKyAgICBDU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsIFwKICMK
IENTU19QUk9QRVJUWV9OQU1FX0ZJTEVTX1BBVFRFUk5TID0gJChzdWJzdCAuLCUsJChDU1NfUFJP
UEVSVFlfTkFNRV9GSUxFUykpCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAyNjg0MzkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBj
b3B5KQpAQCAtNTMyMiw2ICs1MzIyLDEzIEBAIHN1YiBHZW5lcmF0ZUF0dHJpYnV0ZUdldHRlckJv
ZHlEZWZpbml0aW8KICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKUyIgLiAkY29uc3Ry
dWN0b3JUeXBlIC4gIi5oIiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICByZXR1cm4gSlMiIC4gJGNvbnN0cnVjdG9yVHlwZSAuICI6OiR7Y29uc3Ry
dWN0b3JHZXR0ZXJ9KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpKTtcbiIpOwogICAgICAgICB9CisgICAgfSBlbHNpZiAoJGF0dHJpYnV0
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q1NTUHJvcGVydHl9KSB7CisgICAgICAgICRpbXBsSW5j
bHVkZXN7IkNTU1Byb3BlcnR5TmFtZXMuaCJ9ID0gMTsKKyAgICAgICAgbXkgJHByb3BlcnR5SUQg
PSAkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDU1NQcm9wZXJ0eX07CisgICAgICAg
IG15ICR0b0pTRXhwcmVzc2lvbiA9IE5hdGl2ZVRvSlNWYWx1ZVVzaW5nUmVmZXJlbmNlcygkYXR0
cmlidXRlLCAkaW50ZXJmYWNlLCAiaW1wbC5nZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWwoQ1NTUHJv
cGVydHkke3Byb3BlcnR5SUR9KSIsICIqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSIpOworICAg
ICAgICAKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8mIGltcGwgPSB0aGlz
T2JqZWN0LndyYXBwZWQoKTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICgke3RvSlNFeHByZXNzaW9ufSkpO1xuIik7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+e0NhY2hlZEF0dHJpYnV0ZX0pIHsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICBpZiAoSlNWYWx1ZSBjYWNoZWRWYWx1ZSA9IHRoaXNPYmplY3QubV8iIC4gJGF0dHJpYnV0
ZS0+bmFtZSAuICIuZ2V0KCkpXG4iKTsKQEAgLTU0NjYsNiArNTQ3MywyMCBAQCBzdWIgR2VuZXJh
dGVBdHRyaWJ1dGVTZXR0ZXJCb2R5RGVmaW5pdGlvCiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICB2bS5oZWFwLndyaXRlQmFycmllcigmdGhpc09iamVjdCwgdmFsdWUpO1xuIik7CiAg
ICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBlbnN1cmVTdGlsbEFsaXZlSGVyZSh2YWx1
ZSk7XG5cbiIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIHRydWU7
XG4iKTsKKyAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDU1NQ
cm9wZXJ0eX0pIHsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siQ1NTUHJvcGVydHlOYW1lcy5oIn0g
PSAxOworCisgICAgICAgIG15ICRwcm9wZXJ0eUlEID0gJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Q1NTUHJvcGVydHl9OworICAgICAgICBteSAkZXhjZXB0aW9uVGhyb3dlciA9IEdl
dEF0dHJpYnV0ZUV4Y2VwdGlvblRocm93ZXIoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7CisgICAg
ICAgIG15ICR0b05hdGl2ZUV4cHJlc3Npb24gPSBKU1ZhbHVlVG9OYXRpdmUoJGludGVyZmFjZSwg
JGF0dHJpYnV0ZSwgInZhbHVlIiwgJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q29u
ZGl0aW9uYWx9LCAiJmxleGljYWxHbG9iYWxPYmplY3QiLCAibGV4aWNhbEdsb2JhbE9iamVjdCIs
ICJ0aGlzT2JqZWN0IiwgIip0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpIiwgJGV4Y2VwdGlvblRo
cm93ZXIpOworCisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvJiBpbXBsID0g
dGhpc09iamVjdC53cmFwcGVkKCk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIGF1dG8gbmF0aXZlVmFsdWUgPSAke3RvTmF0aXZlRXhwcmVzc2lvbn07XG4iKTsKKyAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29w
ZSwgZmFsc2UpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBBdHRyaWJ1
dGVTZXR0ZXI6OmNhbGwobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHtcbiIp
OworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBpbXBsLnNldFBy
b3BlcnR5SW50ZXJuYWwoQ1NTUHJvcGVydHkke3Byb3BlcnR5SUR9LCBXVEZNb3ZlKG5hdGl2ZVZh
bHVlKSwgZmFsc2UpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB9KTtc
biIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIHRydWU7XG4iKTsK
ICAgICB9IGVsc2lmICgkaXNDb25zdHJ1Y3RvcikgewogICAgICAgICBteSAkY29uc3RydWN0b3JU
eXBlID0gJGF0dHJpYnV0ZS0+dHlwZS0+bmFtZTsKICAgICAgICAgJGNvbnN0cnVjdG9yVHlwZSA9
fiBzL0NvbnN0cnVjdG9yJC8vOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9JRExBdHRyaWJ1dGVzLmpzb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24JKHJldmlzaW9uIDI2ODQzOSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uCSh3b3JraW5nIGNv
cHkpCkBAIC0zOSw2ICszOSwxMCBAQAogICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9o
dG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvY3VzdG9tLWVsZW1lbnRzLmh0bWwjY2VyZWFj
dGlvbnMiCiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCisgICAgICAgICJDU1NQcm9wZXJ0eSI6
IHsKKyAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImF0dHJpYnV0ZSJdLAorICAgICAg
ICAgICAgInZhbHVlcyI6IFsiKiJdCisgICAgICAgIH0sCiAgICAgICAgICJDYWNoZWRBdHRyaWJ1
dGUiOiB7CiAgICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJhdHRyaWJ1dGUiXQogICAg
ICAgICB9LApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlk
bAkocmV2aXNpb24gMjY4NDM5KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFy
YXRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNiwgMjAwNywgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDksIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53
ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTE4LDYgKzE4LDggQEAKICAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKK3R5cGVkZWYgVVNWU3RyaW5nIENTU09NU3Ry
aW5nOworCiBbCiAgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCiAgICAgRGVmYXVsdERl
ZmluZU93blByb3BlcnR5LApAQCAtMjcsMzEgKzI5LDE5IEBACiAgICAgU2tpcFZUYWJsZVZhbGlk
YXRpb24sCiAgICAgRXhwb3NlZD1XaW5kb3cKIF0gaW50ZXJmYWNlIENTU1N0eWxlRGVjbGFyYXRp
b24gewotICAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBjc3NUZXh0OwotCi0g
ICAgRE9NU3RyaW5nIGdldFByb3BlcnR5VmFsdWUoRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7Ci0K
LSAgICBbQ0VSZWFjdGlvbnMsIE1heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgcmVtb3ZlUHJv
cGVydHkoRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7Ci0gICAgRE9NU3RyaW5nPyBnZXRQcm9wZXJ0
eVByaW9yaXR5KERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwotCi0gICAgW0NFUmVhY3Rpb25zLCBN
YXlUaHJvd0V4Y2VwdGlvbl0gdW5kZWZpbmVkIHNldFByb3BlcnR5KERPTVN0cmluZyBwcm9wZXJ0
eU5hbWUsIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gRE9NU3RyaW5nIHZhbHVlLCBvcHRpb25h
bCBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIERPTVN0cmluZyBwcmlvcml0eSA9ICIiKTsKLQor
ICAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIENTU09NU3RyaW5nIGNzc1RleHQ7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwotICAgIGdldHRlciBET01TdHJp
bmcgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICBnZXR0ZXIgQ1NTT01TdHJpbmcgaXRl
bSh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICBDU1NPTVN0cmluZyBnZXRQcm9wZXJ0eVZhbHVl
KENTU09NU3RyaW5nIHByb3BlcnR5KTsKKyAgICAvLyBGSVhNRTogVGhlIHJldHVybiB2YWx1ZSBv
ZiAnZ2V0UHJvcGVydHlQcmlvcml0eScgc2hvdWxkIG5vdCBiZSBudWxsYWJsZS4KKyAgICBDU1NP
TVN0cmluZz8gZ2V0UHJvcGVydHlQcmlvcml0eShDU1NPTVN0cmluZyBwcm9wZXJ0eSk7CisgICAg
W0NFUmVhY3Rpb25zLCBNYXlUaHJvd0V4Y2VwdGlvbl0gdW5kZWZpbmVkIHNldFByb3BlcnR5KENT
U09NU3RyaW5nIHByb3BlcnR5LCBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IHZhbHVlLCBvcHRpb25hbCBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHBy
aW9yaXR5ID0gIiIpOworICAgIFtDRVJlYWN0aW9ucywgTWF5VGhyb3dFeGNlcHRpb25dIENTU09N
U3RyaW5nIHJlbW92ZVByb3BlcnR5KENTU09NU3RyaW5nIHByb3BlcnR5KTsKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgQ1NTUnVsZT8gcGFyZW50UnVsZTsKKyAgICBbQ0VSZWFjdGlvbnNdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGNzc0Zsb2F0OwogCi0g
ICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBET01T
dHJpbmcgY3NzRmxvYXQ7Ci0KKyAgICAvLyBOb24tc3RhbmRhcmQuCiAgICAgRE9NU3RyaW5nPyBn
ZXRQcm9wZXJ0eVNob3J0aGFuZChvcHRpb25hbCBET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKICAg
ICBib29sZWFuIGlzUHJvcGVydHlJbXBsaWNpdChvcHRpb25hbCBET01TdHJpbmcgcHJvcGVydHlO
YW1lKTsKLQotICAgIC8vIFVzZSBuYW1lZCBnZXR0ZXJzL3NldHRlcnMgZm9yIGFsbCBzdXBwb3J0
IENTUyBwcm9wZXJ0eSBuYW1lcy4gVGhlIHNwZWMgc2F5cwotICAgIC8vIHRoZXNlIHNob3VsZCBi
ZSBub3JtYWwgYXR0cmlidXRlcywgYnV0IHRoZXJlIGFyZSB0b28gbWFueSBjb21iaW5hdGlvbnMg
d2l0aAotICAgIC8vIHByZWZpeGVzIGZvciB0aGlzIHRvIGJlIHByYWN0aWNhbC4gSWYgd2UgcmVt
b3ZlIGxlZ2FjeSBhbGlhc2VzLCB3ZSBzaG91bGQKLSAgICAvLyByZWNvbnNpZGVyIHRoaXMgZGVj
aXNpb24uCi0gICAgZ2V0dGVyIChET01TdHJpbmcgb3IgZG91YmxlKSAoRE9NU3RyaW5nIG5hbWUp
OwotICAgIFtDRVJlYWN0aW9ucywgQ2FsbE5hbWVkU2V0dGVyT25seUZvclN1cHBvcnRlZFByb3Bl
cnRpZXNdIHNldHRlciB1bmRlZmluZWQgKERPTVN0cmluZyBuYW1lLCBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIERPTVN0cmluZyB2YWx1ZSk7Ci0KLSAgICAvLyBUaGlzIG1ldGhvZCBpcyBkZXBy
ZWNhdGVkLCBhbmQgd2Ugd291bGQgbGlrZSB0byBkcm9wIHN1cHBvcnQgZm9yIGl0IHNvbWVkYXkK
ICAgICBEZXByZWNhdGVkQ1NTT01WYWx1ZT8gZ2V0UHJvcGVydHlDU1NWYWx1ZShET01TdHJpbmcg
cHJvcGVydHlOYW1lKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL21ha2Vwcm9wLnBsCShyZXZpc2lvbiAy
Njg0MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwJKHdvcmtpbmcgY29weSkK
QEAgLTEzNTgsMyArMTM1OCw5OCBAQCBpZiAobm90ICRncGVyZikgewogICAgICRncGVyZiA9ICRF
TlZ7R1BFUkZ9ID8gJEVOVntHUEVSRn0gOiAiZ3BlcmYiOwogfQogc3lzdGVtKCJcIiRncGVyZlwi
IC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtbiAtcyAyIENTU1Byb3BlcnR5TmFtZXMuZ3BlcmYg
LS1vdXRwdXQtZmlsZT1DU1NQcm9wZXJ0eU5hbWVzLmNwcCIpID09IDAgfHwgZGllICJjYWxsaW5n
IGdwZXJmIGZhaWxlZDogJD8iOworCisKKyMgR2VuZXJhdGUgQ1NTU3R5bGVEZWNsYXJhdGlvbitQ
cm9wZXJ0eU5hbWVzLmlkbAorCisjIEZyb20gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29t
LyNjc3MtcHJvcGVydHktdG8taWRsLWF0dHJpYnV0ZQorc3ViIGNzc1Byb3BlcnR5VG9JRExBdHRy
aWJ1dGUoJCQpCit7CisgICAgbXkgJHByb3BlcnR5ID0gc2hpZnQ7CisgICAgbXkgJGxvd2VyY2Fz
ZUZpcnN0ID0gc2hpZnQ7CisKKyAgICBteSAkb3V0cHV0ID0gIiI7CisgICAgbXkgJHVwcGVyY2Fz
ZU5leHQgPSAwOworCisgICAgaWYgKCRsb3dlcmNhc2VGaXJzdCkgeworICAgICAgICAkcHJvcGVy
dHkgPSBzdWJzdHIoJHByb3BlcnR5LCAxKTsKKyAgICB9CisKKyAgICBmb3JlYWNoIG15ICRjaGFy
YWN0ZXIgKHNwbGl0IC8vLCAkcHJvcGVydHkpIHsKKyAgICAgICAgaWYgKCRjaGFyYWN0ZXIgZXEg
Ii0iKSB7CisgICAgICAgICAgICAkdXBwZXJjYXNlTmV4dCA9IDE7CisgICAgICAgIH0gZWxzaWYg
KCR1cHBlcmNhc2VOZXh0KSB7CisgICAgICAgICAgICAkdXBwZXJjYXNlTmV4dCA9IDA7CisgICAg
ICAgICAgICAkb3V0cHV0IC49IHVjICRjaGFyYWN0ZXI7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAkb3V0cHV0IC49ICRjaGFyYWN0ZXI7CisgICAgICAgIH0KKyAgICB9CisgICAgCisg
ICAgcmV0dXJuICRvdXRwdXQ7Cit9CisKKyMgRklYTUU6IFRoaW5ncyB0aGF0IHN0aWxsIG5lZWQg
dG8gYmUgZG9uZToKKyMgLSBGaWd1cmUgb3V0IGlmIHdlIG5lZWQgdG8gaGFuZGxlIGFsaWFzZXMg
c3BlY2lhbGx5LgorIyAtIEZpZ3VyZSBvdXQgaWYgdGhlcmUgYW55IG5hbWVzIHdlIHNob3VsZCBy
ZW1vdmUgKGUuZy4gaW50ZXJuYWwgb25seSBvbmVzPykKKyMgLSBBZGQgRW5hYmxlZEJ5U2V0dGlu
Zy9FbmFibGVkQXRSdW50aW1lIGV4dGVuZGVkIGF0dHJpYnV0ZXMuCitvcGVuIENTU19TVFlMRV9E
RUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwsICI+IiwgIkNTU1N0eWxlRGVjbGFyYXRpb24r
UHJvcGVydHlOYW1lcy5pZGwiIG9yIGRpZSAiQ291bGQgbm90IG9wZW4gQ1NTU3R5bGVEZWNsYXJh
dGlvbitQcm9wZXJ0eU5hbWVzLmlkbCBmb3Igd3JpdGluZ1xuIjsKK3ByaW50IENTU19TVFlMRV9E
RUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgPDwgIkVPRiI7CisvLyBUaGlzIGZpbGUgaXMg
YXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSAkaW5wdXRGaWxlIGJ5IHRoZSBtYWtlcHJvcC5w
bCBzY3JpcHQuIERvIG5vdCBlZGl0IGl0LgorCit0eXBlZGVmIFVTVlN0cmluZyBDU1NPTVN0cmlu
ZzsKKworcGFydGlhbCBpbnRlcmZhY2UgQ1NTU3R5bGVEZWNsYXJhdGlvbiB7CitFT0YKKworcHJp
bnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsKKyAg
ICAvLyBGb3IgZWFjaCBDU1MgcHJvcGVydHkgcHJvcGVydHkgdGhhdCBpcyBhIHN1cHBvcnRlZCBD
U1MgcHJvcGVydHksIHRoZSBmb2xsb3dpbmcKKyAgICAvLyBwYXJ0aWFsIGludGVyZmFjZSBhcHBs
aWVzIHdoZXJlIGNhbWVsLWNhc2VkIGF0dHJpYnV0ZSBpcyBvYnRhaW5lZCBieSBydW5uaW5nIHRo
ZQorICAgIC8vIENTUyBwcm9wZXJ0eSB0byBJREwgYXR0cmlidXRlIGFsZ29yaXRobSBmb3IgcHJv
cGVydHkuCisgICAgLy8gRXhhbXBsZTogZm9udC1zaXplIC0+IGVsZW1lbnQuc3R5bGUuZm9udFNp
emUKKyAgICAvLyBFeGFtcGxlOiAtd2Via2l0LXRyYW5zZm9ybSAtPiBlbGVtZW50LnN0eWxlLldl
YmtpdFRyYW5zZm9ybQorICAgIC8vIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgX2NhbWVsX2Nhc2VkX2F0dHJpYnV0ZTsKK0VPRgor
Citmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKKyAgICBteSAkY2FtZWxDYXNlZEF0dHJpYnV0
ZU5hbWUgPSBjc3NQcm9wZXJ0eVRvSURMQXR0cmlidXRlKCRuYW1lLCAwKTsKKyAgICBteSAkcHJv
cGVydHlJZCA9ICRuYW1lVG9JZHskbmFtZX07CisgICAgcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFU
SU9OX1BST1BFUlRZX05BTUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9JHtw
cm9wZXJ0eUlkfV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgJHtjYW1lbENhc2VkQXR0cmlidXRlTmFtZX07XG4iOworfQorCitwcmludCBDU1NfU1RZTEVf
REVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMIDw8ICJFT0YiOworCisgICAgLy8gRm9yIGVh
Y2ggQ1NTIHByb3BlcnR5IHByb3BlcnR5IHRoYXQgaXMgYSBzdXBwb3J0ZWQgQ1NTIHByb3BlcnR5
IGFuZCB0aGF0IGJlZ2lucworICAgIC8vIHdpdGggdGhlIHN0cmluZyAtd2Via2l0LSwgdGhlIGZv
bGxvd2luZyBwYXJ0aWFsIGludGVyZmFjZSBhcHBsaWVzIHdoZXJlIHdlYmtpdC1jYXNlZAorICAg
IC8vIGF0dHJpYnV0ZSBpcyBvYnRhaW5lZCBieSBydW5uaW5nIHRoZSBDU1MgcHJvcGVydHkgdG8g
SURMIGF0dHJpYnV0ZSBhbGdvcml0aG0gZm9yCisgICAgLy8gcHJvcGVydHksIHdpdGggdGhlIGxv
d2VyY2FzZSBmaXJzdCBmbGFnIHNldC4KKyAgICAvLyBFeGFtcGxlOiAtd2Via2l0LXRyYW5zZm9y
bSAtPiBlbGVtZW50LnN0eWxlLndlYmtpdFRyYW5zZm9ybQorICAgIC8vIFtDRVJlYWN0aW9uc10g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgX3dlYmtpdF9j
YXNlZF9hdHRyaWJ1dGU7CitFT0YKKworZm9yZWFjaCBteSAkbmFtZSAoZ3JlcCB7ICRfID1+IC9e
XC13ZWJraXRcLS8gfSBAbmFtZXMpIHsKKyAgICBteSAkd2Via2l0Q2FzZWRBdHRyaWJ1dGVOYW1l
ID0gY3NzUHJvcGVydHlUb0lETEF0dHJpYnV0ZSgkbmFtZSwgMSk7CisgICAgbXkgJHByb3BlcnR5
SWQgPSAkbmFtZVRvSWR7JG5hbWV9OworICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9Q
Uk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PSR7cHJvcGVy
dHlJZH1dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nICR7
d2Via2l0Q2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiI7Cit9CisKK3ByaW50IENTU19TVFlMRV9ERUNM
QVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgPDwgIkVPRiI7CisKKyAgICAvLyBGb3IgZWFjaCBD
U1MgcHJvcGVydHkgcHJvcGVydHkgdGhhdCBpcyBhIHN1cHBvcnRlZCBDU1MgcHJvcGVydHksIGV4
Y2VwdCBmb3IKKyAgICAvLyBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBubyAiLSIgKFUrMDAyRCkgaW4g
dGhlIHByb3BlcnR5IG5hbWUsIHRoZSBmb2xsb3dpbmcgcGFydGlhbAorICAgIC8vIGludGVyZmFj
ZSBhcHBsaWVzIHdoZXJlIGRhc2hlZCBhdHRyaWJ1dGUgaXMgcHJvcGVydHkuCisgICAgLy8gRXhh
bXBsZTogZm9udC1zaXplIC0+IGVsZW1lbnQuc3R5bGVbJ2ZvbnQtc2l6ZSddCisgICAgLy8gRXhh
bXBsZTogLXdlYmtpdC10cmFuc2Zvcm0gLT4gZWxlbWVudC5zdHlsZS5bJy13ZWJraXQtdHJhbnNm
b3JtJ10KKyAgICAvLyBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlT
dHJpbmddIENTU09NU3RyaW5nIF9kYXNoZWRfYXR0cmlidXRlOworRU9GCitmb3JlYWNoIG15ICRu
YW1lIChncmVwIHsgJF8gPX4gL1wtLyB9IEBuYW1lcykgeworICAgIG15ICRkYXNoZWRBdHRyaWJ1
dGVOYW1lID0gJG5hbWU7CisgICAgbXkgJHByb3BlcnR5SWQgPSAkbmFtZVRvSWR7JG5hbWV9Owor
ICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PSR7cHJvcGVydHlJZH1dIGF0dHJpYnV0ZSBbTGVnYWN5
TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nICR7ZGFzaGVkQXR0cmlidXRlTmFtZX07XG4i
OworfQorCitwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMIDw8
ICJFT0YiOworfTsKK0VPRgorCitjbG9zZSBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlf
TkFNRVNfSURMOwo=
</data>
<flag name="commit-queue"
          id="427452"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411292</attachid>
            <date>2020-10-13 18:57:33 -0700</date>
            <delta_ts>2020-10-13 19:21:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217623-20201013185732.patch</filename>
            <type>text/plain</type>
            <size>17527</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2ODQ0MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDIwLTEwLTEzICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIGJy
ZWFrcyBKUyBzcGVjIChwcm9wZXJ0aWVzIG5vdCBzaG93aW5nIHVwIGluIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eU5hbWVzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE3NjIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW1dJUF0KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG06CisgICAgICAgIChHZW5lcmF0ZUF0dHJpYnV0ZUdldHRlckJvZHlEZWZpbml0aW9uKToK
KyAgICAgICAgKEdlbmVyYXRlQXR0cmlidXRlU2V0dGVyQm9keURlZmluaXRpb24pOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uOgorICAgICAgICAqIGNzcy9D
U1NTdHlsZURlY2xhcmF0aW9uLmlkbDoKKyAgICAgICAgKiBjc3MvbWFrZXByb3AucGw6CisgICAg
ICAgIChjc3NQcm9wZXJ0eVRvSURMQXR0cmlidXRlKToKKwogMjAyMC0xMC0xMyAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFBhaW50IENTUyBoaWdo
bGlnaHRzIG92ZXIgaW1hZ2VzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjY4
NDM5KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTE4NzksNyArMTg3OSw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke1dlYkNvcmVf
REUKIAogIyBHZW5lcmF0ZSBDU1MgcHJvcGVydHkgbmFtZXMKIGFkZF9jdXN0b21fY29tbWFuZCgK
LSAgICBPVVRQVVQgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1Byb3BlcnRpZXMu
anNvbiAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5oICR7
V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVzLmNwcCAke1dlYkNv
cmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5ncGVyZiAke1dlYkNvcmVf
REVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVCdWlsZGVyR2VuZXJhdGVkLmNwcCAke1dlYkNvcmVf
REVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5oICR7
V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rp
b25zLmNwcAorICAgIE9VVFBVVCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJv
cGVydGllcy5qc29uICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5h
bWVzLmggJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1Byb3BlcnR5TmFtZXMuY3Bw
ICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVzLmdwZXJmICR7
V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZUJ1aWxkZXJHZW5lcmF0ZWQuY3BwICR7
V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rp
b25zLmggJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0eWxlUHJvcGVydHlTaG9ydGhh
bmRGdW5jdGlvbnMuY3BwICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NTdHlsZURl
Y2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsCiAgICAgTUFJTl9ERVBFTkRFTkNZICR7V0VCQ09S
RV9ESVJ9L2Nzcy9tYWtlcHJvcC5wbAogICAgIERFUEVORFMgJHtXZWJDb3JlX0NTU19QUk9QRVJU
WV9OQU1FU30KICAgICBXT1JLSU5HX0RJUkVDVE9SWSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VT
X0RJUn0KQEAgLTE4ODksNiArMTg4OSw3IEBAIGFkZF9jdXN0b21fY29tbWFuZCgKIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUyAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJv
cGVydHlOYW1lcy5jcHApCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtXZWJDb3JlX0RF
UklWRURfU09VUkNFU19ESVJ9L1N0eWxlQnVpbGRlckdlbmVyYXRlZC5jcHApCiBsaXN0KEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0eWxlUHJv
cGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwKQorbGlzdChBUFBFTkQgV2ViQ29yZV9JRExfRklM
RVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1N0eWxlRGVjbGFyYXRpb24rUHJv
cGVydHlOYW1lcy5pZGwpCiBBRERfU09VUkNFX1dFQkNPUkVfREVSSVZFRF9ERVBFTkRFTkNJRVMo
JHtXRUJDT1JFX0RJUn0vY3NzL0NTU1BhcnNlci5jcHAgQ1NTVmFsdWVLZXl3b3Jkcy5oKQogCiAj
IEdlbmVyYXRlIENTUyB2YWx1ZSBrZXl3b3JkcwpJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCShyZXZpc2lvbiAyNjg0MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xMzI3LDYgKzEzMjcsNyBAQCBKU19CSU5ESU5HX0lE
TFMgPSBcCiAgICAgJChXZWJDb3JlKS94bWwvWFBhdGhSZXN1bHQuaWRsIFwKICAgICAkKFdlYkNv
cmUpL3htbC9YU0xUUHJvY2Vzc29yLmlkbCBcCiAgICAgSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRl
ZC5pZGwgXAorICAgIENTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5pZGwgXAogIwog
CiAjIC0tLS0tLS0tCkBAIC0xNDQ1LDYgKzE0NDYsNyBAQCBDU1NfUFJPUEVSVFlfTkFNRV9GSUxF
UyA9IFwKICAgICBTdHlsZUJ1aWxkZXJHZW5lcmF0ZWQuY3BwIFwKICAgICBTdHlsZVByb3BlcnR5
U2hvcnRoYW5kRnVuY3Rpb25zLmNwcCBcCiAgICAgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0
aW9ucy5oIFwKKyAgICBDU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsIFwKICMK
IENTU19QUk9QRVJUWV9OQU1FX0ZJTEVTX1BBVFRFUk5TID0gJChzdWJzdCAuLCUsJChDU1NfUFJP
UEVSVFlfTkFNRV9GSUxFUykpCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAyNjg0MzkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBj
b3B5KQpAQCAtMTg1Myw3ICsxODUzLDcgQEAgc3ViIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25O
YW1lCiAKICAgICAkbmFtZSA9fiBzLy0vX2Rhc2hfL2c7CiAKLSAgICByZXR1cm4gJG5hbWU7Cisg
ICAgcmV0dXJuICRuYW1lID1+IC9eXy8gPyAkbmFtZSA6ICdfJyAuICRuYW1lOwogfQogCiBzdWIg
R2V0QXR0cmlidXRlR2V0dGVyTmFtZQpAQCAtMTg2MSw5ICsxODYxLDkgQEAgc3ViIEdldEF0dHJp
YnV0ZUdldHRlck5hbWUKICAgICBteSAoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0
ZSkgPSBAXzsKIAogICAgIHJldHVybiBHZXRKU0J1aWx0aW5GdW5jdGlvbk5hbWUoJGNsYXNzTmFt
ZSwgJGF0dHJpYnV0ZSkgaWYgSXNKU0J1aWx0aW4oJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7Ci0g
ICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUpIC4gIkNvbnN0
cnVjdG9yIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KE1hbmdsZUF0dHJpYnV0ZU9yRnVu
Y3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpKSBpZiAkYXR0cmlidXRlLT5pc1N0YXRpYzsKLSAg
ICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAkY29kZUdl
bmVyYXRvci0+V0tfdWNmaXJzdChNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmli
dXRlLT5uYW1lKSkgLiAiQ29uc3RydWN0b3IiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0cnVj
dG9yVHlwZSgkYXR0cmlidXRlLT50eXBlKTsKLSAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldL
X2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdChNYW5nbGVB
dHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSk7CisgICAgcmV0dXJuICRj
b2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUpIC4gIkNvbnN0cnVjdG9yIiAuIE1h
bmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpIGlmICRhdHRyaWJ1
dGUtPmlzU3RhdGljOworICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkY2xh
c3NOYW1lKSAuIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUp
IC4gIkNvbnN0cnVjdG9yIiBpZiAkY29kZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3RvclR5cGUoJGF0
dHJpYnV0ZS0+dHlwZSk7CisgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRj
bGFzc05hbWUpIC4gTWFuZ2xlQXR0cmlidXRlT3JGdW5jdGlvbk5hbWUoJGF0dHJpYnV0ZS0+bmFt
ZSk7CiB9CiAKIHN1YiBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lCkBAIC0xODcxLDkgKzE4NzEsOSBA
QCBzdWIgR2V0QXR0cmlidXRlU2V0dGVyTmFtZQogICAgIG15ICgkaW50ZXJmYWNlLCAkY2xhc3NO
YW1lLCAkYXR0cmlidXRlKSA9IEBfOwogCiAgICAgcmV0dXJuICJzZXQiIC4gJGNvZGVHZW5lcmF0
b3ItPldLX3VjZmlyc3QoR2V0SlNCdWlsdGluRnVuY3Rpb25OYW1lKCRjbGFzc05hbWUsICRhdHRy
aWJ1dGUpKSBpZiBJc0pTQnVpbHRpbigkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKLSAgICByZXR1
cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY2xhc3NOYW1lKSAuICJDb25z
dHJ1Y3RvciIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdChNYW5nbGVBdHRyaWJ1dGVPckZ1
bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSkgaWYgJGF0dHJpYnV0ZS0+aXNTdGF0aWM7Ci0g
ICAgcmV0dXJuICJzZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGNsYXNzTmFtZSkg
LiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdChNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFt
ZSgkYXR0cmlidXRlLT5uYW1lKSkgLiAiQ29uc3RydWN0b3IiIGlmICRjb2RlR2VuZXJhdG9yLT5J
c0NvbnN0cnVjdG9yVHlwZSgkYXR0cmlidXRlLT50eXBlKTsKLSAgICByZXR1cm4gInNldCIgLiAk
Y29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY2xhc3NOYW1lKSAuICRjb2RlR2VuZXJhdG9yLT5X
S191Y2ZpcnN0KE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUp
KTsKKyAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY2xhc3NO
YW1lKSAuICJDb25zdHJ1Y3RvciIgLiBNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0
cmlidXRlLT5uYW1lKSBpZiAkYXR0cmlidXRlLT5pc1N0YXRpYzsKKyAgICByZXR1cm4gInNldCIg
LiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY2xhc3NOYW1lKSAuIE1hbmdsZUF0dHJpYnV0
ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpIC4gIkNvbnN0cnVjdG9yIiBpZiAkY29k
ZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3RvclR5cGUoJGF0dHJpYnV0ZS0+dHlwZSk7CisgICAgcmV0
dXJuICJzZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGNsYXNzTmFtZSkgLiBNYW5n
bGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKTsKIH0KIAogc3ViIEdl
dEZ1bmN0aW9uTmFtZQpAQCAtMTg4Niw3ICsxODg2LDcgQEAgc3ViIEdldEZ1bmN0aW9uTmFtZQog
ICAgICRmdW5jdGlvbk5hbWUgPSAiU3ltYm9sSXRlcmF0b3IiIGlmICRmdW5jdGlvbk5hbWUgZXEg
IltTeW1ib2wuSXRlcmF0b3JdIjsKIAogICAgIG15ICRraW5kID0gJG9wZXJhdGlvbi0+aXNTdGF0
aWMgPyAiQ29uc3RydWN0b3IiIDogKE9wZXJhdGlvblNob3VsZEJlT25JbnN0YW5jZSgkaW50ZXJm
YWNlLCAkb3BlcmF0aW9uKSA/ICJJbnN0YW5jZSIgOiAiUHJvdG90eXBlIik7Ci0gICAgcmV0dXJu
ICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUpIC4gJGtpbmQgLiAiRnVuY3Rp
b24iIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoTWFuZ2xlQXR0cmlidXRlT3JGdW5jdGlv
bk5hbWUoJGZ1bmN0aW9uTmFtZSkpOworICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+V0tfbGNm
aXJzdCgkY2xhc3NOYW1lKSAuICRraW5kIC4gIkZ1bmN0aW9uIiAuIE1hbmdsZUF0dHJpYnV0ZU9y
RnVuY3Rpb25OYW1lKCRmdW5jdGlvbk5hbWUpOwogfQogCiBzdWIgR2V0RnVsbHlRdWFsaWZpZWRJ
bXBsZW1lbnRhdGlvbkNhbGxOYW1lCkBAIC01MzIyLDYgKzUzMjIsMTMgQEAgc3ViIEdlbmVyYXRl
QXR0cmlidXRlR2V0dGVyQm9keURlZmluaXRpbwogICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVk
ZXMoIkpTIiAuICRjb25zdHJ1Y3RvclR5cGUgLiAiLmgiLCAkY29uZGl0aW9uYWwpOwogICAgICAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBKUyIgLiAkY29uc3RydWN0b3JU
eXBlIC4gIjo6JHtjb25zdHJ1Y3RvckdldHRlcn0oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpO1xuIik7CiAgICAgICAgIH0KKyAgICB9
IGVsc2lmICgkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDU1NQcm9wZXJ0eX0pIHsK
KyAgICAgICAgJGltcGxJbmNsdWRlc3siQ1NTUHJvcGVydHlOYW1lcy5oIn0gPSAxOworICAgICAg
ICBteSAkcHJvcGVydHlJRCA9ICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NTU1By
b3BlcnR5fTsKKyAgICAgICAgbXkgJHRvSlNFeHByZXNzaW9uID0gTmF0aXZlVG9KU1ZhbHVlVXNp
bmdSZWZlcmVuY2VzKCRhdHRyaWJ1dGUsICRpbnRlcmZhY2UsICJpbXBsLmdldFByb3BlcnR5VmFs
dWVJbnRlcm5hbChDU1NQcm9wZXJ0eSR7cHJvcGVydHlJRH0pIiwgIip0aGlzT2JqZWN0Lmdsb2Jh
bE9iamVjdCgpIik7CisgICAgICAgIAorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
YXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpO1xuIik7CisgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKCR7dG9KU0V4
cHJlc3Npb259KSk7XG4iKTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q2FjaGVkQXR0cmlidXRlfSkgewogICAgICAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0gdGhpc09iamVj
dC5tXyIgLiAkYXR0cmlidXRlLT5uYW1lIC4gIi5nZXQoKSlcbiIpOwpAQCAtNTQ2Niw2ICs1NDcz
LDIwIEBAIHN1YiBHZW5lcmF0ZUF0dHJpYnV0ZVNldHRlckJvZHlEZWZpbml0aW8KICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKCZ0aGlzT2JqZWN0
LCB2YWx1ZSk7XG4iKTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGVuc3VyZVN0
aWxsQWxpdmVIZXJlKHZhbHVlKTtcblxuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICByZXR1cm4gdHJ1ZTtcbiIpOworICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0NTU1Byb3BlcnR5fSkgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyJDU1NQ
cm9wZXJ0eU5hbWVzLmgifSA9IDE7CisKKyAgICAgICAgbXkgJHByb3BlcnR5SUQgPSAkYXR0cmli
dXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDU1NQcm9wZXJ0eX07CisgICAgICAgIG15ICRleGNl
cHRpb25UaHJvd2VyID0gR2V0QXR0cmlidXRlRXhjZXB0aW9uVGhyb3dlcigkaW50ZXJmYWNlLCAk
YXR0cmlidXRlKTsKKyAgICAgICAgbXkgJHRvTmF0aXZlRXhwcmVzc2lvbiA9IEpTVmFsdWVUb05h
dGl2ZSgkaW50ZXJmYWNlLCAkYXR0cmlidXRlLCAidmFsdWUiLCAkYXR0cmlidXRlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbH0sICImbGV4aWNhbEdsb2JhbE9iamVjdCIsICJsZXhp
Y2FsR2xvYmFsT2JqZWN0IiwgInRoaXNPYmplY3QiLCAiKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0
KCkiLCAkZXhjZXB0aW9uVGhyb3dlcik7CisKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTtcbiIpOworICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgYXV0byBuYXRpdmVWYWx1ZSA9ICR7dG9OYXRpdmVFeHByZXNz
aW9ufTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIEF0dHJpYnV0ZVNldHRlcjo6Y2FsbChsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBbJl0ge1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAg
cmV0dXJuIGltcGwuc2V0UHJvcGVydHlJbnRlcm5hbChDU1NQcm9wZXJ0eSR7cHJvcGVydHlJRH0s
IFdURk1vdmUobmF0aXZlVmFsdWUpLCBmYWxzZSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIH0pO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBy
ZXR1cm4gdHJ1ZTtcbiIpOwogICAgIH0gZWxzaWYgKCRpc0NvbnN0cnVjdG9yKSB7CiAgICAgICAg
IG15ICRjb25zdHJ1Y3RvclR5cGUgPSAkYXR0cmlidXRlLT50eXBlLT5uYW1lOwogICAgICAgICAk
Y29uc3RydWN0b3JUeXBlID1+IHMvQ29uc3RydWN0b3IkLy87CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgkocmV2aXNpb24g
MjY4NDM5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVz
Lmpzb24JKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDEwIEBACiAgICAgICAgICAgICAgICAg
InVybCI6ICJodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9jdXN0b20tZWxl
bWVudHMuaHRtbCNjZXJlYWN0aW9ucyIKICAgICAgICAgICAgIH0KICAgICAgICAgfSwKKyAgICAg
ICAgIkNTU1Byb3BlcnR5IjogeworICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiYXR0
cmlidXRlIl0sCisgICAgICAgICAgICAidmFsdWVzIjogWyIqIl0KKyAgICAgICAgfSwKICAgICAg
ICAgIkNhY2hlZEF0dHJpYnV0ZSI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBb
ImF0dHJpYnV0ZSJdCiAgICAgICAgIH0sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVEZWNsYXJhdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0
eWxlRGVjbGFyYXRpb24uaWRsCShyZXZpc2lvbiAyNjg0MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSwgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2Ft
dWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTgsNiAr
MTgsOCBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAordHlwZWRlZiBV
U1ZTdHJpbmcgQ1NTT01TdHJpbmc7CisKIFsKICAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9S
VCwKICAgICBEZWZhdWx0RGVmaW5lT3duUHJvcGVydHksCkBAIC0yNywzMSArMjksMTkgQEAKICAg
ICBTa2lwVlRhYmxlVmFsaWRhdGlvbiwKICAgICBFeHBvc2VkPVdpbmRvdwogXSBpbnRlcmZhY2Ug
Q1NTU3R5bGVEZWNsYXJhdGlvbiB7Ci0gICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGNzc1RleHQ7Ci0KLSAgICBET01TdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZShET01TdHJpbmcg
cHJvcGVydHlOYW1lKTsKLQotICAgIFtDRVJlYWN0aW9ucywgTWF5VGhyb3dFeGNlcHRpb25dIERP
TVN0cmluZyByZW1vdmVQcm9wZXJ0eShET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKLSAgICBET01T
dHJpbmc/IGdldFByb3BlcnR5UHJpb3JpdHkoRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7Ci0KLSAg
ICBbQ0VSZWFjdGlvbnMsIE1heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc2V0UHJvcGVydHko
RE9NU3RyaW5nIHByb3BlcnR5TmFtZSwgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBET01TdHJp
bmcgdmFsdWUsIG9wdGlvbmFsIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gRE9NU3RyaW5nIHBy
aW9yaXR5ID0gIiIpOwotCisgICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgQ1NTT01TdHJpbmcg
Y3NzVGV4dDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7Ci0g
ICAgZ2V0dGVyIERPTVN0cmluZyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIGdldHRl
ciBDU1NPTVN0cmluZyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIENTU09NU3RyaW5n
IGdldFByb3BlcnR5VmFsdWUoQ1NTT01TdHJpbmcgcHJvcGVydHkpOworICAgIC8vIEZJWE1FOiBU
aGUgcmV0dXJuIHZhbHVlIG9mICdnZXRQcm9wZXJ0eVByaW9yaXR5JyBzaG91bGQgbm90IGJlIG51
bGxhYmxlLgorICAgIENTU09NU3RyaW5nPyBnZXRQcm9wZXJ0eVByaW9yaXR5KENTU09NU3RyaW5n
IHByb3BlcnR5KTsKKyAgICBbQ0VSZWFjdGlvbnMsIE1heVRocm93RXhjZXB0aW9uXSB1bmRlZmlu
ZWQgc2V0UHJvcGVydHkoQ1NTT01TdHJpbmcgcHJvcGVydHksIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgdmFsdWUsIG9wdGlvbmFsIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgcHJpb3JpdHkgPSAiIik7CisgICAgW0NFUmVhY3Rpb25zLCBNYXlUaHJv
d0V4Y2VwdGlvbl0gQ1NTT01TdHJpbmcgcmVtb3ZlUHJvcGVydHkoQ1NTT01TdHJpbmcgcHJvcGVy
dHkpOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NSdWxlPyBwYXJlbnRSdWxlOworICAgIFtD
RVJlYWN0aW9uc10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgY3NzRmxvYXQ7CiAKLSAgICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRv
RW1wdHlTdHJpbmddIERPTVN0cmluZyBjc3NGbG9hdDsKLQorICAgIC8vIE5vbi1zdGFuZGFyZC4K
ICAgICBET01TdHJpbmc/IGdldFByb3BlcnR5U2hvcnRoYW5kKG9wdGlvbmFsIERPTVN0cmluZyBw
cm9wZXJ0eU5hbWUpOwogICAgIGJvb2xlYW4gaXNQcm9wZXJ0eUltcGxpY2l0KG9wdGlvbmFsIERP
TVN0cmluZyBwcm9wZXJ0eU5hbWUpOwotCi0gICAgLy8gVXNlIG5hbWVkIGdldHRlcnMvc2V0dGVy
cyBmb3IgYWxsIHN1cHBvcnQgQ1NTIHByb3BlcnR5IG5hbWVzLiBUaGUgc3BlYyBzYXlzCi0gICAg
Ly8gdGhlc2Ugc2hvdWxkIGJlIG5vcm1hbCBhdHRyaWJ1dGVzLCBidXQgdGhlcmUgYXJlIHRvbyBt
YW55IGNvbWJpbmF0aW9ucyB3aXRoCi0gICAgLy8gcHJlZml4ZXMgZm9yIHRoaXMgdG8gYmUgcHJh
Y3RpY2FsLiBJZiB3ZSByZW1vdmUgbGVnYWN5IGFsaWFzZXMsIHdlIHNob3VsZAotICAgIC8vIHJl
Y29uc2lkZXIgdGhpcyBkZWNpc2lvbi4KLSAgICBnZXR0ZXIgKERPTVN0cmluZyBvciBkb3VibGUp
IChET01TdHJpbmcgbmFtZSk7Ci0gICAgW0NFUmVhY3Rpb25zLCBDYWxsTmFtZWRTZXR0ZXJPbmx5
Rm9yU3VwcG9ydGVkUHJvcGVydGllc10gc2V0dGVyIHVuZGVmaW5lZCAoRE9NU3RyaW5nIG5hbWUs
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gRE9NU3RyaW5nIHZhbHVlKTsKLQotICAgIC8vIFRo
aXMgbWV0aG9kIGlzIGRlcHJlY2F0ZWQsIGFuZCB3ZSB3b3VsZCBsaWtlIHRvIGRyb3Agc3VwcG9y
dCBmb3IgaXQgc29tZWRheQogICAgIERlcHJlY2F0ZWRDU1NPTVZhbHVlPyBnZXRQcm9wZXJ0eUNT
U1ZhbHVlKERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2Nzcy9tYWtlcHJvcC5wbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXBy
b3AucGwJKHJldmlzaW9uIDI2ODQzOSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5w
bAkod29ya2luZyBjb3B5KQpAQCAtMTM1OCwzICsxMzU4LDk4IEBAIGlmIChub3QgJGdwZXJmKSB7
CiAgICAgJGdwZXJmID0gJEVOVntHUEVSRn0gPyAkRU5We0dQRVJGfSA6ICJncGVyZiI7CiB9CiBz
eXN0ZW0oIlwiJGdwZXJmXCIgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1uIC1zIDIgQ1NTUHJv
cGVydHlOYW1lcy5ncGVyZiAtLW91dHB1dC1maWxlPUNTU1Byb3BlcnR5TmFtZXMuY3BwIikgPT0g
MCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CisKKworIyBHZW5lcmF0ZSBDU1NT
dHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsCisKKyMgRnJvbSBodHRwczovL2RyYWZ0
cy5jc3N3Zy5vcmcvY3Nzb20vI2Nzcy1wcm9wZXJ0eS10by1pZGwtYXR0cmlidXRlCitzdWIgY3Nz
UHJvcGVydHlUb0lETEF0dHJpYnV0ZSgkJCkKK3sKKyAgICBteSAkcHJvcGVydHkgPSBzaGlmdDsK
KyAgICBteSAkbG93ZXJjYXNlRmlyc3QgPSBzaGlmdDsKKworICAgIG15ICRvdXRwdXQgPSAiIjsK
KyAgICBteSAkdXBwZXJjYXNlTmV4dCA9IDA7CisKKyAgICBpZiAoJGxvd2VyY2FzZUZpcnN0KSB7
CisgICAgICAgICRwcm9wZXJ0eSA9IHN1YnN0cigkcHJvcGVydHksIDEpOworICAgIH0KKworICAg
IGZvcmVhY2ggbXkgJGNoYXJhY3RlciAoc3BsaXQgLy8sICRwcm9wZXJ0eSkgeworICAgICAgICBp
ZiAoJGNoYXJhY3RlciBlcSAiLSIpIHsKKyAgICAgICAgICAgICR1cHBlcmNhc2VOZXh0ID0gMTsK
KyAgICAgICAgfSBlbHNpZiAoJHVwcGVyY2FzZU5leHQpIHsKKyAgICAgICAgICAgICR1cHBlcmNh
c2VOZXh0ID0gMDsKKyAgICAgICAgICAgICRvdXRwdXQgLj0gdWMgJGNoYXJhY3RlcjsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRvdXRwdXQgLj0gJGNoYXJhY3RlcjsKKyAgICAgICAg
fQorICAgIH0KKyAgICAKKyAgICByZXR1cm4gJG91dHB1dDsKK30KKworIyBGSVhNRTogVGhpbmdz
IHRoYXQgc3RpbGwgbmVlZCB0byBiZSBkb25lOgorIyAtIEZpZ3VyZSBvdXQgaWYgd2UgbmVlZCB0
byBoYW5kbGUgYWxpYXNlcyBzcGVjaWFsbHkuCisjIC0gRmlndXJlIG91dCBpZiB0aGVyZSBhbnkg
bmFtZXMgd2Ugc2hvdWxkIHJlbW92ZSAoZS5nLiBpbnRlcm5hbCBvbmx5IG9uZXM/KQorIyAtIEFk
ZCBFbmFibGVkQnlTZXR0aW5nL0VuYWJsZWRBdFJ1bnRpbWUgZXh0ZW5kZWQgYXR0cmlidXRlcy4K
K29wZW4gQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCwgIj4iLCAiQ1NT
U3R5bGVEZWNsYXJhdGlvbitQcm9wZXJ0eU5hbWVzLmlkbCIgb3IgZGllICJDb3VsZCBub3Qgb3Bl
biBDU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsIGZvciB3cml0aW5nXG4iOwor
cHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsK
Ky8vIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tICRpbnB1dEZpbGUg
YnkgdGhlIG1ha2Vwcm9wLnBsIHNjcmlwdC4gRG8gbm90IGVkaXQgaXQuCisKK3R5cGVkZWYgVVNW
U3RyaW5nIENTU09NU3RyaW5nOworCitwYXJ0aWFsIGludGVyZmFjZSBDU1NTdHlsZURlY2xhcmF0
aW9uIHsKK0VPRgorCitwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNf
SURMIDw8ICJFT0YiOworICAgIC8vIEZvciBlYWNoIENTUyBwcm9wZXJ0eSBwcm9wZXJ0eSB0aGF0
IGlzIGEgc3VwcG9ydGVkIENTUyBwcm9wZXJ0eSwgdGhlIGZvbGxvd2luZworICAgIC8vIHBhcnRp
YWwgaW50ZXJmYWNlIGFwcGxpZXMgd2hlcmUgY2FtZWwtY2FzZWQgYXR0cmlidXRlIGlzIG9idGFp
bmVkIGJ5IHJ1bm5pbmcgdGhlCisgICAgLy8gQ1NTIHByb3BlcnR5IHRvIElETCBhdHRyaWJ1dGUg
YWxnb3JpdGhtIGZvciBwcm9wZXJ0eS4KKyAgICAvLyBFeGFtcGxlOiBmb250LXNpemUgLT4gZWxl
bWVudC5zdHlsZS5mb250U2l6ZQorICAgIC8vIEV4YW1wbGU6IC13ZWJraXQtdHJhbnNmb3JtIC0+
IGVsZW1lbnQuc3R5bGUuV2Via2l0VHJhbnNmb3JtCisgICAgLy8gW0NFUmVhY3Rpb25zXSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBfY2FtZWxfY2FzZWRf
YXR0cmlidXRlOworRU9GCisKK2ZvcmVhY2ggbXkgJG5hbWUgKEBuYW1lcykgeworICAgIG15ICRj
YW1lbENhc2VkQXR0cmlidXRlTmFtZSA9IGNzc1Byb3BlcnR5VG9JRExBdHRyaWJ1dGUoJG5hbWUs
IDApOworICAgIG15ICRwcm9wZXJ0eUlkID0gJG5hbWVUb0lkeyRuYW1lfTsKKyAgICBwcmludCBD
U1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT0ke3Byb3BlcnR5SWR9XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyAke2NhbWVsQ2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiI7Cit9CisK
K3ByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgPDwgIkVPRiI7
CisKKyAgICAvLyBGb3IgZWFjaCBDU1MgcHJvcGVydHkgcHJvcGVydHkgdGhhdCBpcyBhIHN1cHBv
cnRlZCBDU1MgcHJvcGVydHkgYW5kIHRoYXQgYmVnaW5zCisgICAgLy8gd2l0aCB0aGUgc3RyaW5n
IC13ZWJraXQtLCB0aGUgZm9sbG93aW5nIHBhcnRpYWwgaW50ZXJmYWNlIGFwcGxpZXMgd2hlcmUg
d2Via2l0LWNhc2VkCisgICAgLy8gYXR0cmlidXRlIGlzIG9idGFpbmVkIGJ5IHJ1bm5pbmcgdGhl
IENTUyBwcm9wZXJ0eSB0byBJREwgYXR0cmlidXRlIGFsZ29yaXRobSBmb3IKKyAgICAvLyBwcm9w
ZXJ0eSwgd2l0aCB0aGUgbG93ZXJjYXNlIGZpcnN0IGZsYWcgc2V0LgorICAgIC8vIEV4YW1wbGU6
IC13ZWJraXQtdHJhbnNmb3JtIC0+IGVsZW1lbnQuc3R5bGUud2Via2l0VHJhbnNmb3JtCisgICAg
Ly8gW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyBfd2Via2l0X2Nhc2VkX2F0dHJpYnV0ZTsKK0VPRgorCitmb3JlYWNoIG15ICRuYW1l
IChncmVwIHsgJF8gPX4gL15cLXdlYmtpdFwtLyB9IEBuYW1lcykgeworICAgIG15ICR3ZWJraXRD
YXNlZEF0dHJpYnV0ZU5hbWUgPSBjc3NQcm9wZXJ0eVRvSURMQXR0cmlidXRlKCRuYW1lLCAxKTsK
KyAgICBteSAkcHJvcGVydHlJZCA9ICRuYW1lVG9JZHskbmFtZX07CisgICAgcHJpbnQgQ1NTX1NU
WUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9JHtwcm9wZXJ0eUlkfV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgJHt3ZWJraXRDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIjsKK30KKworcHJp
bnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsKKwor
ICAgIC8vIEZvciBlYWNoIENTUyBwcm9wZXJ0eSBwcm9wZXJ0eSB0aGF0IGlzIGEgc3VwcG9ydGVk
IENTUyBwcm9wZXJ0eSwgZXhjZXB0IGZvcgorICAgIC8vIHByb3BlcnRpZXMgdGhhdCBoYXZlIG5v
ICItIiAoVSswMDJEKSBpbiB0aGUgcHJvcGVydHkgbmFtZSwgdGhlIGZvbGxvd2luZyBwYXJ0aWFs
CisgICAgLy8gaW50ZXJmYWNlIGFwcGxpZXMgd2hlcmUgZGFzaGVkIGF0dHJpYnV0ZSBpcyBwcm9w
ZXJ0eS4KKyAgICAvLyBFeGFtcGxlOiBmb250LXNpemUgLT4gZWxlbWVudC5zdHlsZVsnZm9udC1z
aXplJ10KKyAgICAvLyBFeGFtcGxlOiAtd2Via2l0LXRyYW5zZm9ybSAtPiBlbGVtZW50LnN0eWxl
LlsnLXdlYmtpdC10cmFuc2Zvcm0nXQorICAgIC8vIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgX2Rhc2hlZF9hdHRyaWJ1dGU7CitF
T0YKK2ZvcmVhY2ggbXkgJG5hbWUgKGdyZXAgeyAkXyA9fiAvXC0vIH0gQG5hbWVzKSB7CisgICAg
bXkgJGRhc2hlZEF0dHJpYnV0ZU5hbWUgPSAkbmFtZTsKKyAgICBteSAkcHJvcGVydHlJZCA9ICRu
YW1lVG9JZHskbmFtZX07CisgICAgcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZ
X05BTUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9JHtwcm9wZXJ0eUlkfV0g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgJHtkYXNoZWRB
dHRyaWJ1dGVOYW1lfTtcbiI7Cit9CisKK3ByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9Q
RVJUWV9OQU1FU19JREwgPDwgIkVPRiI7Cit9OworRU9GCisKK2Nsb3NlIENTU19TVFlMRV9ERUNM
QVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREw7Cg==
</data>
<flag name="commit-queue"
          id="427455"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411293</attachid>
            <date>2020-10-13 19:18:59 -0700</date>
            <delta_ts>2020-10-14 10:03:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217623-20201013191858.patch</filename>
            <type>text/plain</type>
            <size>17524</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2ODQ0MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDIwLTEwLTEzICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIGJy
ZWFrcyBKUyBzcGVjIChwcm9wZXJ0aWVzIG5vdCBzaG93aW5nIHVwIGluIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eU5hbWVzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE3NjIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW1dJUF0KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG06CisgICAgICAgIChHZW5lcmF0ZUF0dHJpYnV0ZUdldHRlckJvZHlEZWZpbml0aW9uKToK
KyAgICAgICAgKEdlbmVyYXRlQXR0cmlidXRlU2V0dGVyQm9keURlZmluaXRpb24pOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uOgorICAgICAgICAqIGNzcy9D
U1NTdHlsZURlY2xhcmF0aW9uLmlkbDoKKyAgICAgICAgKiBjc3MvbWFrZXByb3AucGw6CisgICAg
ICAgIChjc3NQcm9wZXJ0eVRvSURMQXR0cmlidXRlKToKKwogMjAyMC0xMC0xMyAgTWVnYW4gR2Fy
ZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFBhaW50IENTUyBoaWdo
bGlnaHRzIG92ZXIgaW1hZ2VzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjY4
NDM5KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTE4NzksNyArMTg3OSw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke1dlYkNvcmVf
REUKIAogIyBHZW5lcmF0ZSBDU1MgcHJvcGVydHkgbmFtZXMKIGFkZF9jdXN0b21fY29tbWFuZCgK
LSAgICBPVVRQVVQgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1Byb3BlcnRpZXMu
anNvbiAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5oICR7
V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVzLmNwcCAke1dlYkNv
cmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5ncGVyZiAke1dlYkNvcmVf
REVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVCdWlsZGVyR2VuZXJhdGVkLmNwcCAke1dlYkNvcmVf
REVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5oICR7
V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rp
b25zLmNwcAorICAgIE9VVFBVVCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJv
cGVydGllcy5qc29uICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5h
bWVzLmggJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1Byb3BlcnR5TmFtZXMuY3Bw
ICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVzLmdwZXJmICR7
V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZUJ1aWxkZXJHZW5lcmF0ZWQuY3BwICR7
V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rp
b25zLmggJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0eWxlUHJvcGVydHlTaG9ydGhh
bmRGdW5jdGlvbnMuY3BwICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NTdHlsZURl
Y2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsCiAgICAgTUFJTl9ERVBFTkRFTkNZICR7V0VCQ09S
RV9ESVJ9L2Nzcy9tYWtlcHJvcC5wbAogICAgIERFUEVORFMgJHtXZWJDb3JlX0NTU19QUk9QRVJU
WV9OQU1FU30KICAgICBXT1JLSU5HX0RJUkVDVE9SWSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VT
X0RJUn0KQEAgLTE4ODksNiArMTg4OSw3IEBAIGFkZF9jdXN0b21fY29tbWFuZCgKIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUyAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJv
cGVydHlOYW1lcy5jcHApCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtXZWJDb3JlX0RF
UklWRURfU09VUkNFU19ESVJ9L1N0eWxlQnVpbGRlckdlbmVyYXRlZC5jcHApCiBsaXN0KEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0eWxlUHJv
cGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwKQorbGlzdChBUFBFTkQgV2ViQ29yZV9JRExfRklM
RVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1N0eWxlRGVjbGFyYXRpb24rUHJv
cGVydHlOYW1lcy5pZGwpCiBBRERfU09VUkNFX1dFQkNPUkVfREVSSVZFRF9ERVBFTkRFTkNJRVMo
JHtXRUJDT1JFX0RJUn0vY3NzL0NTU1BhcnNlci5jcHAgQ1NTVmFsdWVLZXl3b3Jkcy5oKQogCiAj
IEdlbmVyYXRlIENTUyB2YWx1ZSBrZXl3b3JkcwpJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCShyZXZpc2lvbiAyNjg0MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xMzI3LDYgKzEzMjcsNyBAQCBKU19CSU5ESU5HX0lE
TFMgPSBcCiAgICAgJChXZWJDb3JlKS94bWwvWFBhdGhSZXN1bHQuaWRsIFwKICAgICAkKFdlYkNv
cmUpL3htbC9YU0xUUHJvY2Vzc29yLmlkbCBcCiAgICAgSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRl
ZC5pZGwgXAorICAgIENTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5pZGwgXAogIwog
CiAjIC0tLS0tLS0tCkBAIC0xNDQ1LDYgKzE0NDYsNyBAQCBDU1NfUFJPUEVSVFlfTkFNRV9GSUxF
UyA9IFwKICAgICBTdHlsZUJ1aWxkZXJHZW5lcmF0ZWQuY3BwIFwKICAgICBTdHlsZVByb3BlcnR5
U2hvcnRoYW5kRnVuY3Rpb25zLmNwcCBcCiAgICAgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0
aW9ucy5oIFwKKyAgICBDU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsIFwKICMK
IENTU19QUk9QRVJUWV9OQU1FX0ZJTEVTX1BBVFRFUk5TID0gJChzdWJzdCAuLCUsJChDU1NfUFJP
UEVSVFlfTkFNRV9GSUxFUykpCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAyNjg0MzkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBj
b3B5KQpAQCAtMTg1Myw3ICsxODUzLDcgQEAgc3ViIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25O
YW1lCiAKICAgICAkbmFtZSA9fiBzLy0vX2Rhc2hfL2c7CiAKLSAgICByZXR1cm4gJG5hbWU7Cisg
ICAgcmV0dXJuICRuYW1lID1+IC9eXy8gPyAkbmFtZSA6ICdfJyAuICRuYW1lOwogfQogCiBzdWIg
R2V0QXR0cmlidXRlR2V0dGVyTmFtZQpAQCAtMTg2MSw5ICsxODYxLDkgQEAgc3ViIEdldEF0dHJp
YnV0ZUdldHRlck5hbWUKICAgICBteSAoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0
ZSkgPSBAXzsKIAogICAgIHJldHVybiBHZXRKU0J1aWx0aW5GdW5jdGlvbk5hbWUoJGNsYXNzTmFt
ZSwgJGF0dHJpYnV0ZSkgaWYgSXNKU0J1aWx0aW4oJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7Ci0g
ICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUpIC4gIkNvbnN0
cnVjdG9yIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KE1hbmdsZUF0dHJpYnV0ZU9yRnVu
Y3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpKSBpZiAkYXR0cmlidXRlLT5pc1N0YXRpYzsKLSAg
ICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAkY29kZUdl
bmVyYXRvci0+V0tfdWNmaXJzdChNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmli
dXRlLT5uYW1lKSkgLiAiQ29uc3RydWN0b3IiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0cnVj
dG9yVHlwZSgkYXR0cmlidXRlLT50eXBlKTsKLSAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldL
X2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdChNYW5nbGVB
dHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSk7CisgICAgcmV0dXJuICRj
b2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUpIC4gIkNvbnN0cnVjdG9yIiAuIE1h
bmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpIGlmICRhdHRyaWJ1
dGUtPmlzU3RhdGljOworICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkY2xh
c3NOYW1lKSAuIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUp
IC4gIkNvbnN0cnVjdG9yIiBpZiAkY29kZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3RvclR5cGUoJGF0
dHJpYnV0ZS0+dHlwZSk7CisgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRj
bGFzc05hbWUpIC4gTWFuZ2xlQXR0cmlidXRlT3JGdW5jdGlvbk5hbWUoJGF0dHJpYnV0ZS0+bmFt
ZSk7CiB9CiAKIHN1YiBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lCkBAIC0xODcxLDkgKzE4NzEsOSBA
QCBzdWIgR2V0QXR0cmlidXRlU2V0dGVyTmFtZQogICAgIG15ICgkaW50ZXJmYWNlLCAkY2xhc3NO
YW1lLCAkYXR0cmlidXRlKSA9IEBfOwogCiAgICAgcmV0dXJuICJzZXQiIC4gJGNvZGVHZW5lcmF0
b3ItPldLX3VjZmlyc3QoR2V0SlNCdWlsdGluRnVuY3Rpb25OYW1lKCRjbGFzc05hbWUsICRhdHRy
aWJ1dGUpKSBpZiBJc0pTQnVpbHRpbigkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKLSAgICByZXR1
cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY2xhc3NOYW1lKSAuICJDb25z
dHJ1Y3RvciIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdChNYW5nbGVBdHRyaWJ1dGVPckZ1
bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSkgaWYgJGF0dHJpYnV0ZS0+aXNTdGF0aWM7Ci0g
ICAgcmV0dXJuICJzZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGNsYXNzTmFtZSkg
LiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdChNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFt
ZSgkYXR0cmlidXRlLT5uYW1lKSkgLiAiQ29uc3RydWN0b3IiIGlmICRjb2RlR2VuZXJhdG9yLT5J
c0NvbnN0cnVjdG9yVHlwZSgkYXR0cmlidXRlLT50eXBlKTsKLSAgICByZXR1cm4gInNldCIgLiAk
Y29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY2xhc3NOYW1lKSAuICRjb2RlR2VuZXJhdG9yLT5X
S191Y2ZpcnN0KE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUp
KTsKKyAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY2xhc3NO
YW1lKSAuICJDb25zdHJ1Y3RvciIgLiBNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0
cmlidXRlLT5uYW1lKSBpZiAkYXR0cmlidXRlLT5pc1N0YXRpYzsKKyAgICByZXR1cm4gInNldCIg
LiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY2xhc3NOYW1lKSAuIE1hbmdsZUF0dHJpYnV0
ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpIC4gIkNvbnN0cnVjdG9yIiBpZiAkY29k
ZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3RvclR5cGUoJGF0dHJpYnV0ZS0+dHlwZSk7CisgICAgcmV0
dXJuICJzZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGNsYXNzTmFtZSkgLiBNYW5n
bGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKTsKIH0KIAogc3ViIEdl
dEZ1bmN0aW9uTmFtZQpAQCAtMTg4Niw3ICsxODg2LDcgQEAgc3ViIEdldEZ1bmN0aW9uTmFtZQog
ICAgICRmdW5jdGlvbk5hbWUgPSAiU3ltYm9sSXRlcmF0b3IiIGlmICRmdW5jdGlvbk5hbWUgZXEg
IltTeW1ib2wuSXRlcmF0b3JdIjsKIAogICAgIG15ICRraW5kID0gJG9wZXJhdGlvbi0+aXNTdGF0
aWMgPyAiQ29uc3RydWN0b3IiIDogKE9wZXJhdGlvblNob3VsZEJlT25JbnN0YW5jZSgkaW50ZXJm
YWNlLCAkb3BlcmF0aW9uKSA/ICJJbnN0YW5jZSIgOiAiUHJvdG90eXBlIik7Ci0gICAgcmV0dXJu
ICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUpIC4gJGtpbmQgLiAiRnVuY3Rp
b24iIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoTWFuZ2xlQXR0cmlidXRlT3JGdW5jdGlv
bk5hbWUoJGZ1bmN0aW9uTmFtZSkpOworICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+V0tfbGNm
aXJzdCgkY2xhc3NOYW1lKSAuICRraW5kIC4gIkZ1bmN0aW9uIiAuICRjb2RlR2VuZXJhdG9yLT5X
S191Y2ZpcnN0KCRmdW5jdGlvbk5hbWUpOwogfQogCiBzdWIgR2V0RnVsbHlRdWFsaWZpZWRJbXBs
ZW1lbnRhdGlvbkNhbGxOYW1lCkBAIC01MzIyLDYgKzUzMjIsMTMgQEAgc3ViIEdlbmVyYXRlQXR0
cmlidXRlR2V0dGVyQm9keURlZmluaXRpbwogICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMo
IkpTIiAuICRjb25zdHJ1Y3RvclR5cGUgLiAiLmgiLCAkY29uZGl0aW9uYWwpOwogICAgICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBKUyIgLiAkY29uc3RydWN0b3JUeXBl
IC4gIjo6JHtjb25zdHJ1Y3RvckdldHRlcn0oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpO1xuIik7CiAgICAgICAgIH0KKyAgICB9IGVs
c2lmICgkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDU1NQcm9wZXJ0eX0pIHsKKyAg
ICAgICAgJGltcGxJbmNsdWRlc3siQ1NTUHJvcGVydHlOYW1lcy5oIn0gPSAxOworICAgICAgICBt
eSAkcHJvcGVydHlJRCA9ICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NTU1Byb3Bl
cnR5fTsKKyAgICAgICAgbXkgJHRvSlNFeHByZXNzaW9uID0gTmF0aXZlVG9KU1ZhbHVlVXNpbmdS
ZWZlcmVuY2VzKCRhdHRyaWJ1dGUsICRpbnRlcmZhY2UsICJpbXBsLmdldFByb3BlcnR5VmFsdWVJ
bnRlcm5hbChDU1NQcm9wZXJ0eSR7cHJvcGVydHlJRH0pIiwgIip0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpIik7CisgICAgICAgIAorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0
byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKCR7dG9KU0V4cHJl
c3Npb259KSk7XG4iKTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Q2FjaGVkQXR0cmlidXRlfSkgewogICAgICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0gdGhpc09iamVjdC5t
XyIgLiAkYXR0cmlidXRlLT5uYW1lIC4gIi5nZXQoKSlcbiIpOwpAQCAtNTQ2Niw2ICs1NDczLDIw
IEBAIHN1YiBHZW5lcmF0ZUF0dHJpYnV0ZVNldHRlckJvZHlEZWZpbml0aW8KICAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKCZ0aGlzT2JqZWN0LCB2
YWx1ZSk7XG4iKTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGVuc3VyZVN0aWxs
QWxpdmVIZXJlKHZhbHVlKTtcblxuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICByZXR1cm4gdHJ1ZTtcbiIpOworICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+e0NTU1Byb3BlcnR5fSkgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyJDU1NQcm9w
ZXJ0eU5hbWVzLmgifSA9IDE7CisKKyAgICAgICAgbXkgJHByb3BlcnR5SUQgPSAkYXR0cmlidXRl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDU1NQcm9wZXJ0eX07CisgICAgICAgIG15ICRleGNlcHRp
b25UaHJvd2VyID0gR2V0QXR0cmlidXRlRXhjZXB0aW9uVGhyb3dlcigkaW50ZXJmYWNlLCAkYXR0
cmlidXRlKTsKKyAgICAgICAgbXkgJHRvTmF0aXZlRXhwcmVzc2lvbiA9IEpTVmFsdWVUb05hdGl2
ZSgkaW50ZXJmYWNlLCAkYXR0cmlidXRlLCAidmFsdWUiLCAkYXR0cmlidXRlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPntDb25kaXRpb25hbH0sICImbGV4aWNhbEdsb2JhbE9iamVjdCIsICJsZXhpY2Fs
R2xvYmFsT2JqZWN0IiwgInRoaXNPYmplY3QiLCAiKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCki
LCAkZXhjZXB0aW9uVGhyb3dlcik7CisKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTtcbiIpOworICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgYXV0byBuYXRpdmVWYWx1ZSA9ICR7dG9OYXRpdmVFeHByZXNzaW9u
fTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTih0aHJvd1Njb3BlLCBmYWxzZSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgIEF0dHJpYnV0ZVNldHRlcjo6Y2FsbChsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBbJl0ge1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0
dXJuIGltcGwuc2V0UHJvcGVydHlJbnRlcm5hbChDU1NQcm9wZXJ0eSR7cHJvcGVydHlJRH0sIFdU
Rk1vdmUobmF0aXZlVmFsdWUpLCBmYWxzZSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIH0pO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1
cm4gdHJ1ZTtcbiIpOwogICAgIH0gZWxzaWYgKCRpc0NvbnN0cnVjdG9yKSB7CiAgICAgICAgIG15
ICRjb25zdHJ1Y3RvclR5cGUgPSAkYXR0cmlidXRlLT50eXBlLT5uYW1lOwogICAgICAgICAkY29u
c3RydWN0b3JUeXBlID1+IHMvQ29uc3RydWN0b3IkLy87CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgkocmV2aXNpb24gMjY4
NDM5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpz
b24JKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDEwIEBACiAgICAgICAgICAgICAgICAgInVy
bCI6ICJodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9jdXN0b20tZWxlbWVu
dHMuaHRtbCNjZXJlYWN0aW9ucyIKICAgICAgICAgICAgIH0KICAgICAgICAgfSwKKyAgICAgICAg
IkNTU1Byb3BlcnR5IjogeworICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiYXR0cmli
dXRlIl0sCisgICAgICAgICAgICAidmFsdWVzIjogWyIqIl0KKyAgICAgICAgfSwKICAgICAgICAg
IkNhY2hlZEF0dHJpYnV0ZSI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImF0
dHJpYnV0ZSJdCiAgICAgICAgIH0sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
RGVjbGFyYXRpb24uaWRsCShyZXZpc2lvbiAyNjg0MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSwgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVs
IFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTgsNiArMTgs
OCBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAordHlwZWRlZiBVU1ZT
dHJpbmcgQ1NTT01TdHJpbmc7CisKIFsKICAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVCwK
ICAgICBEZWZhdWx0RGVmaW5lT3duUHJvcGVydHksCkBAIC0yNywzMSArMjksMTkgQEAKICAgICBT
a2lwVlRhYmxlVmFsaWRhdGlvbiwKICAgICBFeHBvc2VkPVdpbmRvdwogXSBpbnRlcmZhY2UgQ1NT
U3R5bGVEZWNsYXJhdGlvbiB7Ci0gICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGNzc1RleHQ7Ci0KLSAgICBET01TdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZShET01TdHJpbmcgcHJv
cGVydHlOYW1lKTsKLQotICAgIFtDRVJlYWN0aW9ucywgTWF5VGhyb3dFeGNlcHRpb25dIERPTVN0
cmluZyByZW1vdmVQcm9wZXJ0eShET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKLSAgICBET01TdHJp
bmc/IGdldFByb3BlcnR5UHJpb3JpdHkoRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7Ci0KLSAgICBb
Q0VSZWFjdGlvbnMsIE1heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc2V0UHJvcGVydHkoRE9N
U3RyaW5nIHByb3BlcnR5TmFtZSwgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBET01TdHJpbmcg
dmFsdWUsIG9wdGlvbmFsIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gRE9NU3RyaW5nIHByaW9y
aXR5ID0gIiIpOwotCisgICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgQ1NTT01TdHJpbmcgY3Nz
VGV4dDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7Ci0gICAg
Z2V0dGVyIERPTVN0cmluZyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIGdldHRlciBD
U1NPTVN0cmluZyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIENTU09NU3RyaW5nIGdl
dFByb3BlcnR5VmFsdWUoQ1NTT01TdHJpbmcgcHJvcGVydHkpOworICAgIC8vIEZJWE1FOiBUaGUg
cmV0dXJuIHZhbHVlIG9mICdnZXRQcm9wZXJ0eVByaW9yaXR5JyBzaG91bGQgbm90IGJlIG51bGxh
YmxlLgorICAgIENTU09NU3RyaW5nPyBnZXRQcm9wZXJ0eVByaW9yaXR5KENTU09NU3RyaW5nIHBy
b3BlcnR5KTsKKyAgICBbQ0VSZWFjdGlvbnMsIE1heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQg
c2V0UHJvcGVydHkoQ1NTT01TdHJpbmcgcHJvcGVydHksIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgdmFsdWUsIG9wdGlvbmFsIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgcHJpb3JpdHkgPSAiIik7CisgICAgW0NFUmVhY3Rpb25zLCBNYXlUaHJvd0V4
Y2VwdGlvbl0gQ1NTT01TdHJpbmcgcmVtb3ZlUHJvcGVydHkoQ1NTT01TdHJpbmcgcHJvcGVydHkp
OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NSdWxlPyBwYXJlbnRSdWxlOworICAgIFtDRVJl
YWN0aW9uc10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
Y3NzRmxvYXQ7CiAKLSAgICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIERPTVN0cmluZyBjc3NGbG9hdDsKLQorICAgIC8vIE5vbi1zdGFuZGFyZC4KICAg
ICBET01TdHJpbmc/IGdldFByb3BlcnR5U2hvcnRoYW5kKG9wdGlvbmFsIERPTVN0cmluZyBwcm9w
ZXJ0eU5hbWUpOwogICAgIGJvb2xlYW4gaXNQcm9wZXJ0eUltcGxpY2l0KG9wdGlvbmFsIERPTVN0
cmluZyBwcm9wZXJ0eU5hbWUpOwotCi0gICAgLy8gVXNlIG5hbWVkIGdldHRlcnMvc2V0dGVycyBm
b3IgYWxsIHN1cHBvcnQgQ1NTIHByb3BlcnR5IG5hbWVzLiBUaGUgc3BlYyBzYXlzCi0gICAgLy8g
dGhlc2Ugc2hvdWxkIGJlIG5vcm1hbCBhdHRyaWJ1dGVzLCBidXQgdGhlcmUgYXJlIHRvbyBtYW55
IGNvbWJpbmF0aW9ucyB3aXRoCi0gICAgLy8gcHJlZml4ZXMgZm9yIHRoaXMgdG8gYmUgcHJhY3Rp
Y2FsLiBJZiB3ZSByZW1vdmUgbGVnYWN5IGFsaWFzZXMsIHdlIHNob3VsZAotICAgIC8vIHJlY29u
c2lkZXIgdGhpcyBkZWNpc2lvbi4KLSAgICBnZXR0ZXIgKERPTVN0cmluZyBvciBkb3VibGUpIChE
T01TdHJpbmcgbmFtZSk7Ci0gICAgW0NFUmVhY3Rpb25zLCBDYWxsTmFtZWRTZXR0ZXJPbmx5Rm9y
U3VwcG9ydGVkUHJvcGVydGllc10gc2V0dGVyIHVuZGVmaW5lZCAoRE9NU3RyaW5nIG5hbWUsIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gRE9NU3RyaW5nIHZhbHVlKTsKLQotICAgIC8vIFRoaXMg
bWV0aG9kIGlzIGRlcHJlY2F0ZWQsIGFuZCB3ZSB3b3VsZCBsaWtlIHRvIGRyb3Agc3VwcG9ydCBm
b3IgaXQgc29tZWRheQogICAgIERlcHJlY2F0ZWRDU1NPTVZhbHVlPyBnZXRQcm9wZXJ0eUNTU1Zh
bHVlKERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nz
cy9tYWtlcHJvcC5wbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXByb3Au
cGwJKHJldmlzaW9uIDI2ODQzOSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAko
d29ya2luZyBjb3B5KQpAQCAtMTM1OCwzICsxMzU4LDk4IEBAIGlmIChub3QgJGdwZXJmKSB7CiAg
ICAgJGdwZXJmID0gJEVOVntHUEVSRn0gPyAkRU5We0dQRVJGfSA6ICJncGVyZiI7CiB9CiBzeXN0
ZW0oIlwiJGdwZXJmXCIgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1uIC1zIDIgQ1NTUHJvcGVy
dHlOYW1lcy5ncGVyZiAtLW91dHB1dC1maWxlPUNTU1Byb3BlcnR5TmFtZXMuY3BwIikgPT0gMCB8
fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CisKKworIyBHZW5lcmF0ZSBDU1NTdHls
ZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsCisKKyMgRnJvbSBodHRwczovL2RyYWZ0cy5j
c3N3Zy5vcmcvY3Nzb20vI2Nzcy1wcm9wZXJ0eS10by1pZGwtYXR0cmlidXRlCitzdWIgY3NzUHJv
cGVydHlUb0lETEF0dHJpYnV0ZSgkJCkKK3sKKyAgICBteSAkcHJvcGVydHkgPSBzaGlmdDsKKyAg
ICBteSAkbG93ZXJjYXNlRmlyc3QgPSBzaGlmdDsKKworICAgIG15ICRvdXRwdXQgPSAiIjsKKyAg
ICBteSAkdXBwZXJjYXNlTmV4dCA9IDA7CisKKyAgICBpZiAoJGxvd2VyY2FzZUZpcnN0KSB7Cisg
ICAgICAgICRwcm9wZXJ0eSA9IHN1YnN0cigkcHJvcGVydHksIDEpOworICAgIH0KKworICAgIGZv
cmVhY2ggbXkgJGNoYXJhY3RlciAoc3BsaXQgLy8sICRwcm9wZXJ0eSkgeworICAgICAgICBpZiAo
JGNoYXJhY3RlciBlcSAiLSIpIHsKKyAgICAgICAgICAgICR1cHBlcmNhc2VOZXh0ID0gMTsKKyAg
ICAgICAgfSBlbHNpZiAoJHVwcGVyY2FzZU5leHQpIHsKKyAgICAgICAgICAgICR1cHBlcmNhc2VO
ZXh0ID0gMDsKKyAgICAgICAgICAgICRvdXRwdXQgLj0gdWMgJGNoYXJhY3RlcjsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICRvdXRwdXQgLj0gJGNoYXJhY3RlcjsKKyAgICAgICAgfQor
ICAgIH0KKyAgICAKKyAgICByZXR1cm4gJG91dHB1dDsKK30KKworIyBGSVhNRTogVGhpbmdzIHRo
YXQgc3RpbGwgbmVlZCB0byBiZSBkb25lOgorIyAtIEZpZ3VyZSBvdXQgaWYgd2UgbmVlZCB0byBo
YW5kbGUgYWxpYXNlcyBzcGVjaWFsbHkuCisjIC0gRmlndXJlIG91dCBpZiB0aGVyZSBhbnkgbmFt
ZXMgd2Ugc2hvdWxkIHJlbW92ZSAoZS5nLiBpbnRlcm5hbCBvbmx5IG9uZXM/KQorIyAtIEFkZCBF
bmFibGVkQnlTZXR0aW5nL0VuYWJsZWRBdFJ1bnRpbWUgZXh0ZW5kZWQgYXR0cmlidXRlcy4KK29w
ZW4gQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCwgIj4iLCAiQ1NTU3R5
bGVEZWNsYXJhdGlvbitQcm9wZXJ0eU5hbWVzLmlkbCIgb3IgZGllICJDb3VsZCBub3Qgb3BlbiBD
U1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsIGZvciB3cml0aW5nXG4iOworcHJp
bnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsKKy8v
IFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tICRpbnB1dEZpbGUgYnkg
dGhlIG1ha2Vwcm9wLnBsIHNjcmlwdC4gRG8gbm90IGVkaXQgaXQuCisKK3R5cGVkZWYgVVNWU3Ry
aW5nIENTU09NU3RyaW5nOworCitwYXJ0aWFsIGludGVyZmFjZSBDU1NTdHlsZURlY2xhcmF0aW9u
IHsKK0VPRgorCitwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURM
IDw8ICJFT0YiOworICAgIC8vIEZvciBlYWNoIENTUyBwcm9wZXJ0eSBwcm9wZXJ0eSB0aGF0IGlz
IGEgc3VwcG9ydGVkIENTUyBwcm9wZXJ0eSwgdGhlIGZvbGxvd2luZworICAgIC8vIHBhcnRpYWwg
aW50ZXJmYWNlIGFwcGxpZXMgd2hlcmUgY2FtZWwtY2FzZWQgYXR0cmlidXRlIGlzIG9idGFpbmVk
IGJ5IHJ1bm5pbmcgdGhlCisgICAgLy8gQ1NTIHByb3BlcnR5IHRvIElETCBhdHRyaWJ1dGUgYWxn
b3JpdGhtIGZvciBwcm9wZXJ0eS4KKyAgICAvLyBFeGFtcGxlOiBmb250LXNpemUgLT4gZWxlbWVu
dC5zdHlsZS5mb250U2l6ZQorICAgIC8vIEV4YW1wbGU6IC13ZWJraXQtdHJhbnNmb3JtIC0+IGVs
ZW1lbnQuc3R5bGUuV2Via2l0VHJhbnNmb3JtCisgICAgLy8gW0NFUmVhY3Rpb25zXSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBfY2FtZWxfY2FzZWRfYXR0
cmlidXRlOworRU9GCisKK2ZvcmVhY2ggbXkgJG5hbWUgKEBuYW1lcykgeworICAgIG15ICRjYW1l
bENhc2VkQXR0cmlidXRlTmFtZSA9IGNzc1Byb3BlcnR5VG9JRExBdHRyaWJ1dGUoJG5hbWUsIDAp
OworICAgIG15ICRwcm9wZXJ0eUlkID0gJG5hbWVUb0lkeyRuYW1lfTsKKyAgICBwcmludCBDU1Nf
U1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT0ke3Byb3BlcnR5SWR9XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyAke2NhbWVsQ2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiI7Cit9CisKK3By
aW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgPDwgIkVPRiI7CisK
KyAgICAvLyBGb3IgZWFjaCBDU1MgcHJvcGVydHkgcHJvcGVydHkgdGhhdCBpcyBhIHN1cHBvcnRl
ZCBDU1MgcHJvcGVydHkgYW5kIHRoYXQgYmVnaW5zCisgICAgLy8gd2l0aCB0aGUgc3RyaW5nIC13
ZWJraXQtLCB0aGUgZm9sbG93aW5nIHBhcnRpYWwgaW50ZXJmYWNlIGFwcGxpZXMgd2hlcmUgd2Vi
a2l0LWNhc2VkCisgICAgLy8gYXR0cmlidXRlIGlzIG9idGFpbmVkIGJ5IHJ1bm5pbmcgdGhlIENT
UyBwcm9wZXJ0eSB0byBJREwgYXR0cmlidXRlIGFsZ29yaXRobSBmb3IKKyAgICAvLyBwcm9wZXJ0
eSwgd2l0aCB0aGUgbG93ZXJjYXNlIGZpcnN0IGZsYWcgc2V0LgorICAgIC8vIEV4YW1wbGU6IC13
ZWJraXQtdHJhbnNmb3JtIC0+IGVsZW1lbnQuc3R5bGUud2Via2l0VHJhbnNmb3JtCisgICAgLy8g
W0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyBfd2Via2l0X2Nhc2VkX2F0dHJpYnV0ZTsKK0VPRgorCitmb3JlYWNoIG15ICRuYW1lIChn
cmVwIHsgJF8gPX4gL15cLXdlYmtpdFwtLyB9IEBuYW1lcykgeworICAgIG15ICR3ZWJraXRDYXNl
ZEF0dHJpYnV0ZU5hbWUgPSBjc3NQcm9wZXJ0eVRvSURMQXR0cmlidXRlKCRuYW1lLCAxKTsKKyAg
ICBteSAkcHJvcGVydHlJZCA9ICRuYW1lVG9JZHskbmFtZX07CisgICAgcHJpbnQgQ1NTX1NUWUxF
X0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9JHtwcm9wZXJ0eUlkfV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgJHt3ZWJraXRDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIjsKK30KKworcHJpbnQg
Q1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsKKworICAg
IC8vIEZvciBlYWNoIENTUyBwcm9wZXJ0eSBwcm9wZXJ0eSB0aGF0IGlzIGEgc3VwcG9ydGVkIENT
UyBwcm9wZXJ0eSwgZXhjZXB0IGZvcgorICAgIC8vIHByb3BlcnRpZXMgdGhhdCBoYXZlIG5vICIt
IiAoVSswMDJEKSBpbiB0aGUgcHJvcGVydHkgbmFtZSwgdGhlIGZvbGxvd2luZyBwYXJ0aWFsCisg
ICAgLy8gaW50ZXJmYWNlIGFwcGxpZXMgd2hlcmUgZGFzaGVkIGF0dHJpYnV0ZSBpcyBwcm9wZXJ0
eS4KKyAgICAvLyBFeGFtcGxlOiBmb250LXNpemUgLT4gZWxlbWVudC5zdHlsZVsnZm9udC1zaXpl
J10KKyAgICAvLyBFeGFtcGxlOiAtd2Via2l0LXRyYW5zZm9ybSAtPiBlbGVtZW50LnN0eWxlLlsn
LXdlYmtpdC10cmFuc2Zvcm0nXQorICAgIC8vIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgX2Rhc2hlZF9hdHRyaWJ1dGU7CitFT0YK
K2ZvcmVhY2ggbXkgJG5hbWUgKGdyZXAgeyAkXyA9fiAvXC0vIH0gQG5hbWVzKSB7CisgICAgbXkg
JGRhc2hlZEF0dHJpYnV0ZU5hbWUgPSAkbmFtZTsKKyAgICBteSAkcHJvcGVydHlJZCA9ICRuYW1l
VG9JZHskbmFtZX07CisgICAgcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05B
TUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9JHtwcm9wZXJ0eUlkfV0gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgJHtkYXNoZWRBdHRy
aWJ1dGVOYW1lfTtcbiI7Cit9CisKK3ByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJU
WV9OQU1FU19JREwgPDwgIkVPRiI7Cit9OworRU9GCisKK2Nsb3NlIENTU19TVFlMRV9ERUNMQVJB
VElPTl9QUk9QRVJUWV9OQU1FU19JREw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411340</attachid>
            <date>2020-10-14 10:03:16 -0700</date>
            <delta_ts>2020-10-14 10:53:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217623-20201014100315.patch</filename>
            <type>text/plain</type>
            <size>20912</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2ODQ2MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDIwLTEwLTEzICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIGJy
ZWFrcyBKUyBzcGVjIChwcm9wZXJ0aWVzIG5vdCBzaG93aW5nIHVwIGluIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eU5hbWVzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE3NjIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW1dJUF0KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG06CisgICAgICAgIChHZW5lcmF0ZUF0dHJpYnV0ZUdldHRlckJvZHlEZWZpbml0aW9uKToK
KyAgICAgICAgKEdlbmVyYXRlQXR0cmlidXRlU2V0dGVyQm9keURlZmluaXRpb24pOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uOgorICAgICAgICAqIGNzcy9D
U1NTdHlsZURlY2xhcmF0aW9uLmlkbDoKKyAgICAgICAgKiBjc3MvbWFrZXByb3AucGw6CisgICAg
ICAgIChjc3NQcm9wZXJ0eVRvSURMQXR0cmlidXRlKToKKwogMjAyMC0xMC0xNCAgWmFsYW4gQnVq
dGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdIFVzZSB0aGUgdGVybSBvdmVy
cmlkZGVuIGluc3RlYWQgb2Ygb3ZlcnJpZGUgdG8gaW5kaWNhdGUgcHJpb3JpdHkgdmFsdWVzCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjY4NDYwKQorKysgU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE4NzksNyArMTg3OSw3IEBAIGxp
c3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke1dlYkNvcmVfREUKIAogIyBHZW5lcmF0ZSBDU1Mg
cHJvcGVydHkgbmFtZXMKIGFkZF9jdXN0b21fY29tbWFuZCgKLSAgICBPVVRQVVQgJHtXZWJDb3Jl
X0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1Byb3BlcnRpZXMuanNvbiAke1dlYkNvcmVfREVSSVZF
RF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5oICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJD
RVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVzLmNwcCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vQ1NTUHJvcGVydHlOYW1lcy5ncGVyZiAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0v
U3R5bGVCdWlsZGVyR2VuZXJhdGVkLmNwcCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0v
U3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5oICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJD
RVNfRElSfS9TdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmNwcAorICAgIE9VVFBVVCAk
e1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydGllcy5qc29uICR7V2ViQ29y
ZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVzLmggJHtXZWJDb3JlX0RFUklW
RURfU09VUkNFU19ESVJ9L0NTU1Byb3BlcnR5TmFtZXMuY3BwICR7V2ViQ29yZV9ERVJJVkVEX1NP
VVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVzLmdwZXJmICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJD
RVNfRElSfS9TdHlsZUJ1aWxkZXJHZW5lcmF0ZWQuY3BwICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJD
RVNfRElSfS9TdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmggJHtXZWJDb3JlX0RFUklW
RURfU09VUkNFU19ESVJ9L1N0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwICR7V2Vi
Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFt
ZXMuaWRsCiAgICAgTUFJTl9ERVBFTkRFTkNZICR7V0VCQ09SRV9ESVJ9L2Nzcy9tYWtlcHJvcC5w
bAogICAgIERFUEVORFMgJHtXZWJDb3JlX0NTU19QUk9QRVJUWV9OQU1FU30KICAgICBXT1JLSU5H
X0RJUkVDVE9SWSAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0KQEAgLTE4ODksNiArMTg4
OSw3IEBAIGFkZF9jdXN0b21fY29tbWFuZCgKIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAk
e1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5jcHApCiBsaXN0
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0
eWxlQnVpbGRlckdlbmVyYXRlZC5jcHApCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtX
ZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlv
bnMuY3BwKQorbGlzdChBUFBFTkQgV2ViQ29yZV9JRExfRklMRVMgJHtXZWJDb3JlX0RFUklWRURf
U09VUkNFU19ESVJ9L0NTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5pZGwpCiBBRERf
U09VUkNFX1dFQkNPUkVfREVSSVZFRF9ERVBFTkRFTkNJRVMoJHtXRUJDT1JFX0RJUn0vY3NzL0NT
U1BhcnNlci5jcHAgQ1NTVmFsdWVLZXl3b3Jkcy5oKQogCiAjIEdlbmVyYXRlIENTUyB2YWx1ZSBr
ZXl3b3JkcwpJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QJKHJldmlzaW9uIDI2ODQ2MCkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDYgKzMsNyBAQCAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9CeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5QnVp
bHRpbnMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NT
UHJvcGVydHlOYW1lcy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0NTU1Byb3BlcnR5TmFtZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvQ1NTU3R5bGVEZWNsYXJhdGlvbitQcm9wZXJ0eU5hbWVzLmlkbAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTVmFsdWVLZXl3b3Jk
cy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1Zh
bHVlS2V5d29yZHMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvQ29sb3JEYXRhLmNwcApAQCAtMjkwLDYgKzI5MSw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWIKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTQ1NTUnVsZS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0NTU1J1bGVMaXN0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NSdWxlTGlzdC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1l
cy5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NT
U3R5bGVEZWNsYXJhdGlvbitQcm9wZXJ0eU5hbWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTU3R5bGVEZWNsYXJhdGlv
bi5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU1N0
eWxlUnVsZS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24g
MjY4NDYwKQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBj
b3B5KQpAQCAtMTMyNyw2ICsxMzI3LDcgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2Vi
Q29yZSkveG1sL1hQYXRoUmVzdWx0LmlkbCBcCiAgICAgJChXZWJDb3JlKS94bWwvWFNMVFByb2Nl
c3Nvci5pZGwgXAogICAgIEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRsIFwKKyAgICBDU1NT
dHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsIFwKICMKIAogIyAtLS0tLS0tLQpAQCAt
MTQxOCw2ICsxNDE5LDcgQEAgYWxsIDogXAogICAgIFN0eWxlQnVpbGRlckdlbmVyYXRlZC5jcHAg
XAogICAgIFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwIFwKICAgICBTdHlsZVBy
b3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmggXAorICAgIENTU1N0eWxlRGVjbGFyYXRpb24rUHJv
cGVydHlOYW1lcy5pZGwgXAogICAgIFVzZXJBZ2VudFN0eWxlU2hlZXRzLmggXAogICAgIFdlYktp
dEZvbnRGYW1pbHlOYW1lcy5jcHAgXAogICAgIFdlYktpdEZvbnRGYW1pbHlOYW1lcy5oIFwKQEAg
LTE0NDUsNiArMTQ0Nyw3IEBAIENTU19QUk9QRVJUWV9OQU1FX0ZJTEVTID0gXAogICAgIFN0eWxl
QnVpbGRlckdlbmVyYXRlZC5jcHAgXAogICAgIFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlv
bnMuY3BwIFwKICAgICBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmggXAorICAgIENT
U1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5pZGwgXAogIwogQ1NTX1BST1BFUlRZX05B
TUVfRklMRVNfUEFUVEVSTlMgPSAkKHN1YnN0IC4sJSwkKENTU19QUk9QRVJUWV9OQU1FX0ZJTEVT
KSkKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDI2ODQ2MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xODUzLDcg
KzE4NTMsNyBAQCBzdWIgTWFuZ2xlQXR0cmlidXRlT3JGdW5jdGlvbk5hbWUKIAogICAgICRuYW1l
ID1+IHMvLS9fZGFzaF8vZzsKIAotICAgIHJldHVybiAkbmFtZTsKKyAgICByZXR1cm4gJG5hbWUg
PX4gL15fLyA/ICRuYW1lIDogJ18nIC4gJG5hbWU7CiB9CiAKIHN1YiBHZXRBdHRyaWJ1dGVHZXR0
ZXJOYW1lCkBAIC0xODYxLDkgKzE4NjEsOSBAQCBzdWIgR2V0QXR0cmlidXRlR2V0dGVyTmFtZQog
ICAgIG15ICgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKSA9IEBfOwogCiAgICAg
cmV0dXJuIEdldEpTQnVpbHRpbkZ1bmN0aW9uTmFtZSgkY2xhc3NOYW1lLCAkYXR0cmlidXRlKSBp
ZiBJc0pTQnVpbHRpbigkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKLSAgICByZXR1cm4gJGNvZGVH
ZW5lcmF0b3ItPldLX2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAiQ29uc3RydWN0b3IiIC4gJGNvZGVH
ZW5lcmF0b3ItPldLX3VjZmlyc3QoTWFuZ2xlQXR0cmlidXRlT3JGdW5jdGlvbk5hbWUoJGF0dHJp
YnV0ZS0+bmFtZSkpIGlmICRhdHRyaWJ1dGUtPmlzU3RhdGljOwotICAgIHJldHVybiAkY29kZUdl
bmVyYXRvci0+V0tfbGNmaXJzdCgkY2xhc3NOYW1lKSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2Zp
cnN0KE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpKSAuICJD
b25zdHJ1Y3RvciIgaWYgJGNvZGVHZW5lcmF0b3ItPklzQ29uc3RydWN0b3JUeXBlKCRhdHRyaWJ1
dGUtPnR5cGUpOwotICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkY2xhc3NO
YW1lKSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rp
b25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpKTsKKyAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldL
X2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAiQ29uc3RydWN0b3IiIC4gTWFuZ2xlQXR0cmlidXRlT3JG
dW5jdGlvbk5hbWUoJGF0dHJpYnV0ZS0+bmFtZSkgaWYgJGF0dHJpYnV0ZS0+aXNTdGF0aWM7Cisg
ICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUpIC4gTWFuZ2xl
QXR0cmlidXRlT3JGdW5jdGlvbk5hbWUoJGF0dHJpYnV0ZS0+bmFtZSkgLiAiQ29uc3RydWN0b3Ii
IGlmICRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVHlwZSgkYXR0cmlidXRlLT50eXBlKTsK
KyAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGNsYXNzTmFtZSkgLiBNYW5n
bGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKTsKIH0KIAogc3ViIEdl
dEF0dHJpYnV0ZVNldHRlck5hbWUKQEAgLTE4NzEsOSArMTg3MSw5IEBAIHN1YiBHZXRBdHRyaWJ1
dGVTZXR0ZXJOYW1lCiAgICAgbXkgKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUp
ID0gQF87CiAKICAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdChH
ZXRKU0J1aWx0aW5GdW5jdGlvbk5hbWUoJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSkpIGlmIElzSlNC
dWlsdGluKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwotICAgIHJldHVybiAic2V0IiAuICRjb2Rl
R2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRjbGFzc05hbWUpIC4gIkNvbnN0cnVjdG9yIiAuICRjb2Rl
R2VuZXJhdG9yLT5XS191Y2ZpcnN0KE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRy
aWJ1dGUtPm5hbWUpKSBpZiAkYXR0cmlidXRlLT5pc1N0YXRpYzsKLSAgICByZXR1cm4gInNldCIg
LiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY2xhc3NOYW1lKSAuICRjb2RlR2VuZXJhdG9y
LT5XS191Y2ZpcnN0KE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5h
bWUpKSAuICJDb25zdHJ1Y3RvciIgaWYgJGNvZGVHZW5lcmF0b3ItPklzQ29uc3RydWN0b3JUeXBl
KCRhdHRyaWJ1dGUtPnR5cGUpOwotICAgIHJldHVybiAic2V0IiAuICRjb2RlR2VuZXJhdG9yLT5X
S191Y2ZpcnN0KCRjbGFzc05hbWUpIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoTWFuZ2xl
QXR0cmlidXRlT3JGdW5jdGlvbk5hbWUoJGF0dHJpYnV0ZS0+bmFtZSkpOworICAgIHJldHVybiAi
c2V0IiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRjbGFzc05hbWUpIC4gIkNvbnN0cnVj
dG9yIiAuIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpIGlm
ICRhdHRyaWJ1dGUtPmlzU3RhdGljOworICAgIHJldHVybiAic2V0IiAuICRjb2RlR2VuZXJhdG9y
LT5XS191Y2ZpcnN0KCRjbGFzc05hbWUpIC4gTWFuZ2xlQXR0cmlidXRlT3JGdW5jdGlvbk5hbWUo
JGF0dHJpYnV0ZS0+bmFtZSkgLiAiQ29uc3RydWN0b3IiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0Nv
bnN0cnVjdG9yVHlwZSgkYXR0cmlidXRlLT50eXBlKTsKKyAgICByZXR1cm4gInNldCIgLiAkY29k
ZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY2xhc3NOYW1lKSAuIE1hbmdsZUF0dHJpYnV0ZU9yRnVu
Y3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpOwogfQogCiBzdWIgR2V0RnVuY3Rpb25OYW1lCkBA
IC0xODg2LDcgKzE4ODYsNyBAQCBzdWIgR2V0RnVuY3Rpb25OYW1lCiAgICAgJGZ1bmN0aW9uTmFt
ZSA9ICJTeW1ib2xJdGVyYXRvciIgaWYgJGZ1bmN0aW9uTmFtZSBlcSAiW1N5bWJvbC5JdGVyYXRv
cl0iOwogCiAgICAgbXkgJGtpbmQgPSAkb3BlcmF0aW9uLT5pc1N0YXRpYyA/ICJDb25zdHJ1Y3Rv
ciIgOiAoT3BlcmF0aW9uU2hvdWxkQmVPbkluc3RhbmNlKCRpbnRlcmZhY2UsICRvcGVyYXRpb24p
ID8gIkluc3RhbmNlIiA6ICJQcm90b3R5cGUiKTsKLSAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3It
PldLX2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAka2luZCAuICJGdW5jdGlvbiIgLiAkY29kZUdlbmVy
YXRvci0+V0tfdWNmaXJzdChNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkZnVuY3Rpb25O
YW1lKSk7CisgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUp
IC4gJGtpbmQgLiAiRnVuY3Rpb24iIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGZ1bmN0
aW9uTmFtZSk7CiB9CiAKIHN1YiBHZXRGdWxseVF1YWxpZmllZEltcGxlbWVudGF0aW9uQ2FsbE5h
bWUKQEAgLTUzMjIsNiArNTMyMiwxMyBAQCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVHZXR0ZXJCb2R5
RGVmaW5pdGlvCiAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlMiIC4gJGNvbnN0cnVj
dG9yVHlwZSAuICIuaCIsICRjb25kaXRpb25hbCk7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgcmV0dXJuIEpTIiAuICRjb25zdHJ1Y3RvclR5cGUgLiAiOjoke2NvbnN0cnVj
dG9yR2V0dGVyfShKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5n
bG9iYWxPYmplY3QoKSk7XG4iKTsKICAgICAgICAgfQorICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+e0NTU1Byb3BlcnR5fSkgeworICAgICAgICAkaW1wbEluY2x1
ZGVzeyJDU1NQcm9wZXJ0eU5hbWVzLmgifSA9IDE7CisgICAgICAgIG15ICRwcm9wZXJ0eUlEID0g
JGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q1NTUHJvcGVydHl9OworICAgICAgICBt
eSAkdG9KU0V4cHJlc3Npb24gPSBOYXRpdmVUb0pTVmFsdWVVc2luZ1JlZmVyZW5jZXMoJGF0dHJp
YnV0ZSwgJGludGVyZmFjZSwgImltcGwuZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsKENTU1Byb3Bl
cnR5JHtwcm9wZXJ0eUlEfSkiLCAiKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkiKTsKKyAgICAg
ICAgCisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvJiBpbXBsID0gdGhpc09i
amVjdC53cmFwcGVkKCk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoJHt0b0pTRXhwcmVzc2lvbn0pKTtcbiIpOwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICgkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PntDYWNoZWRBdHRyaWJ1dGV9KSB7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgaWYgKEpTVmFsdWUgY2FjaGVkVmFsdWUgPSB0aGlzT2JqZWN0Lm1fIiAuICRhdHRyaWJ1dGUt
Pm5hbWUgLiAiLmdldCgpKVxuIik7CkBAIC01NDY2LDYgKzU0NzMsMjAgQEAgc3ViIEdlbmVyYXRl
QXR0cmlidXRlU2V0dGVyQm9keURlZmluaXRpbwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgdm0uaGVhcC53cml0ZUJhcnJpZXIoJnRoaXNPYmplY3QsIHZhbHVlKTtcbiIpOwogICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgZW5zdXJlU3RpbGxBbGl2ZUhlcmUodmFsdWUp
O1xuXG4iKTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiB0cnVlO1xu
Iik7CisgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q1NTUHJv
cGVydHl9KSB7CisgICAgICAgICRpbXBsSW5jbHVkZXN7IkNTU1Byb3BlcnR5TmFtZXMuaCJ9ID0g
MTsKKworICAgICAgICBteSAkcHJvcGVydHlJRCA9ICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+e0NTU1Byb3BlcnR5fTsKKyAgICAgICAgbXkgJGV4Y2VwdGlvblRocm93ZXIgPSBHZXRB
dHRyaWJ1dGVFeGNlcHRpb25UaHJvd2VyKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOworICAgICAg
ICBteSAkdG9OYXRpdmVFeHByZXNzaW9uID0gSlNWYWx1ZVRvTmF0aXZlKCRpbnRlcmZhY2UsICRh
dHRyaWJ1dGUsICJ2YWx1ZSIsICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NvbmRp
dGlvbmFsfSwgIiZsZXhpY2FsR2xvYmFsT2JqZWN0IiwgImxleGljYWxHbG9iYWxPYmplY3QiLCAi
dGhpc09iamVjdCIsICIqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSIsICRleGNlcHRpb25UaHJv
d2VyKTsKKworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0byYgaW1wbCA9IHRo
aXNPYmplY3Qud3JhcHBlZCgpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICBhdXRvIG5hdGl2ZVZhbHVlID0gJHt0b05hdGl2ZUV4cHJlc3Npb259O1xuIik7CisgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUs
IGZhbHNlKTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgQXR0cmlidXRl
U2V0dGVyOjpjYWxsKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7XG4iKTsK
KyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gaW1wbC5zZXRQcm9w
ZXJ0eUludGVybmFsKENTU1Byb3BlcnR5JHtwcm9wZXJ0eUlEfSwgV1RGTW92ZShuYXRpdmVWYWx1
ZSksIGZhbHNlKTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgfSk7XG4i
KTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiB0cnVlO1xuIik7CiAg
ICAgfSBlbHNpZiAoJGlzQ29uc3RydWN0b3IpIHsKICAgICAgICAgbXkgJGNvbnN0cnVjdG9yVHlw
ZSA9ICRhdHRyaWJ1dGUtPnR5cGUtPm5hbWU7CiAgICAgICAgICRjb25zdHJ1Y3RvclR5cGUgPX4g
cy9Db25zdHJ1Y3RvciQvLzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
SURMQXR0cmlidXRlcy5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uCShyZXZpc2lvbiAyNjg0NjApCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgkod29ya2luZyBjb3B5
KQpAQCAtMzksNiArMzksMTAgQEAKICAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vaHRt
bC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2N1c3RvbS1lbGVtZW50cy5odG1sI2NlcmVhY3Rp
b25zIgogICAgICAgICAgICAgfQogICAgICAgICB9LAorICAgICAgICAiQ1NTUHJvcGVydHkiOiB7
CisgICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJhdHRyaWJ1dGUiXSwKKyAgICAgICAg
ICAgICJ2YWx1ZXMiOiBbIioiXQorICAgICAgICB9LAogICAgICAgICAiQ2FjaGVkQXR0cmlidXRl
IjogewogICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiYXR0cmlidXRlIl0KICAgICAg
ICAgfSwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwJ
KHJldmlzaW9uIDI2ODQ2MCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0
aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDYsIDIwMDcsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5LCAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2Vp
bmlnQGdtYWlsLmNvbT4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xOCw2ICsxOCw4IEBACiAgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCit0eXBlZGVmIFVTVlN0cmluZyBDU1NPTVN0cmlu
ZzsKKwogWwogICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JULAogICAgIERlZmF1bHREZWZp
bmVPd25Qcm9wZXJ0eSwKQEAgLTI3LDMxICsyOSwxOSBAQAogICAgIFNraXBWVGFibGVWYWxpZGF0
aW9uLAogICAgIEV4cG9zZWQ9V2luZG93CiBdIGludGVyZmFjZSBDU1NTdHlsZURlY2xhcmF0aW9u
IHsKLSAgICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgY3NzVGV4dDsKLQotICAg
IERPTVN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlKERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwotCi0g
ICAgW0NFUmVhY3Rpb25zLCBNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NU3RyaW5nIHJlbW92ZVByb3Bl
cnR5KERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwotICAgIERPTVN0cmluZz8gZ2V0UHJvcGVydHlQ
cmlvcml0eShET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKLQotICAgIFtDRVJlYWN0aW9ucywgTWF5
VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCBzZXRQcm9wZXJ0eShET01TdHJpbmcgcHJvcGVydHlO
YW1lLCBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIERPTVN0cmluZyB2YWx1ZSwgb3B0aW9uYWwg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBET01TdHJpbmcgcHJpb3JpdHkgPSAiIik7Ci0KKyAg
ICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBDU1NPTVN0cmluZyBjc3NUZXh0OwogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKLSAgICBnZXR0ZXIgRE9NU3RyaW5n
IGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgZ2V0dGVyIENTU09NU3RyaW5nIGl0ZW0o
dW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgQ1NTT01TdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZShD
U1NPTVN0cmluZyBwcm9wZXJ0eSk7CisgICAgLy8gRklYTUU6IFRoZSByZXR1cm4gdmFsdWUgb2Yg
J2dldFByb3BlcnR5UHJpb3JpdHknIHNob3VsZCBub3QgYmUgbnVsbGFibGUuCisgICAgQ1NTT01T
dHJpbmc/IGdldFByb3BlcnR5UHJpb3JpdHkoQ1NTT01TdHJpbmcgcHJvcGVydHkpOworICAgIFtD
RVJlYWN0aW9ucywgTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCBzZXRQcm9wZXJ0eShDU1NP
TVN0cmluZyBwcm9wZXJ0eSwgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB2
YWx1ZSwgb3B0aW9uYWwgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBwcmlv
cml0eSA9ICIiKTsKKyAgICBbQ0VSZWFjdGlvbnMsIE1heVRocm93RXhjZXB0aW9uXSBDU1NPTVN0
cmluZyByZW1vdmVQcm9wZXJ0eShDU1NPTVN0cmluZyBwcm9wZXJ0eSk7CiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIENTU1J1bGU/IHBhcmVudFJ1bGU7CisgICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBjc3NGbG9hdDsKIAotICAg
IFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gRE9NU3Ry
aW5nIGNzc0Zsb2F0OwotCisgICAgLy8gTm9uLXN0YW5kYXJkLgogICAgIERPTVN0cmluZz8gZ2V0
UHJvcGVydHlTaG9ydGhhbmQob3B0aW9uYWwgRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7CiAgICAg
Ym9vbGVhbiBpc1Byb3BlcnR5SW1wbGljaXQob3B0aW9uYWwgRE9NU3RyaW5nIHByb3BlcnR5TmFt
ZSk7Ci0KLSAgICAvLyBVc2UgbmFtZWQgZ2V0dGVycy9zZXR0ZXJzIGZvciBhbGwgc3VwcG9ydCBD
U1MgcHJvcGVydHkgbmFtZXMuIFRoZSBzcGVjIHNheXMKLSAgICAvLyB0aGVzZSBzaG91bGQgYmUg
bm9ybWFsIGF0dHJpYnV0ZXMsIGJ1dCB0aGVyZSBhcmUgdG9vIG1hbnkgY29tYmluYXRpb25zIHdp
dGgKLSAgICAvLyBwcmVmaXhlcyBmb3IgdGhpcyB0byBiZSBwcmFjdGljYWwuIElmIHdlIHJlbW92
ZSBsZWdhY3kgYWxpYXNlcywgd2Ugc2hvdWxkCi0gICAgLy8gcmVjb25zaWRlciB0aGlzIGRlY2lz
aW9uLgotICAgIGdldHRlciAoRE9NU3RyaW5nIG9yIGRvdWJsZSkgKERPTVN0cmluZyBuYW1lKTsK
LSAgICBbQ0VSZWFjdGlvbnMsIENhbGxOYW1lZFNldHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9wZXJ0
aWVzXSBzZXR0ZXIgdW5kZWZpbmVkIChET01TdHJpbmcgbmFtZSwgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBET01TdHJpbmcgdmFsdWUpOwotCi0gICAgLy8gVGhpcyBtZXRob2QgaXMgZGVwcmVj
YXRlZCwgYW5kIHdlIHdvdWxkIGxpa2UgdG8gZHJvcCBzdXBwb3J0IGZvciBpdCBzb21lZGF5CiAg
ICAgRGVwcmVjYXRlZENTU09NVmFsdWU/IGdldFByb3BlcnR5Q1NTVmFsdWUoRE9NU3RyaW5nIHBy
b3BlcnR5TmFtZSk7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL21ha2Vwcm9wLnBsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAkocmV2aXNpb24gMjY4
NDYwKQorKysgU291cmNlL1dlYkNvcmUvY3NzL21ha2Vwcm9wLnBsCSh3b3JraW5nIGNvcHkpCkBA
IC0xMzU4LDMgKzEzNTgsMTMxIEBAIGlmIChub3QgJGdwZXJmKSB7CiAgICAgJGdwZXJmID0gJEVO
VntHUEVSRn0gPyAkRU5We0dQRVJGfSA6ICJncGVyZiI7CiB9CiBzeXN0ZW0oIlwiJGdwZXJmXCIg
LS1rZXktcG9zaXRpb25zPVwiKlwiIC1EIC1uIC1zIDIgQ1NTUHJvcGVydHlOYW1lcy5ncGVyZiAt
LW91dHB1dC1maWxlPUNTU1Byb3BlcnR5TmFtZXMuY3BwIikgPT0gMCB8fCBkaWUgImNhbGxpbmcg
Z3BlcmYgZmFpbGVkOiAkPyI7CisKKworIyBHZW5lcmF0ZSBDU1NTdHlsZURlY2xhcmF0aW9uK1By
b3BlcnR5TmFtZXMuaWRsCisKKyMgaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLyNjc3Mt
cHJvcGVydHktdG8taWRsLWF0dHJpYnV0ZQorc3ViIGNzc1Byb3BlcnR5VG9JRExBdHRyaWJ1dGUo
JCQpCit7CisgICAgbXkgJHByb3BlcnR5ID0gc2hpZnQ7CisgICAgbXkgJGxvd2VyY2FzZUZpcnN0
ID0gc2hpZnQ7CisKKyAgICBteSAkb3V0cHV0ID0gIiI7CisgICAgbXkgJHVwcGVyY2FzZU5leHQg
PSAwOworCisgICAgaWYgKCRsb3dlcmNhc2VGaXJzdCkgeworICAgICAgICAkcHJvcGVydHkgPSBz
dWJzdHIoJHByb3BlcnR5LCAxKTsKKyAgICB9CisKKyAgICBmb3JlYWNoIG15ICRjaGFyYWN0ZXIg
KHNwbGl0IC8vLCAkcHJvcGVydHkpIHsKKyAgICAgICAgaWYgKCRjaGFyYWN0ZXIgZXEgIi0iKSB7
CisgICAgICAgICAgICAkdXBwZXJjYXNlTmV4dCA9IDE7CisgICAgICAgIH0gZWxzaWYgKCR1cHBl
cmNhc2VOZXh0KSB7CisgICAgICAgICAgICAkdXBwZXJjYXNlTmV4dCA9IDA7CisgICAgICAgICAg
ICAkb3V0cHV0IC49IHVjICRjaGFyYWN0ZXI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAkb3V0cHV0IC49ICRjaGFyYWN0ZXI7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcmV0
dXJuICRvdXRwdXQ7Cit9CisKK215ICVuYW1lc0FuZEFsaWFzZXNUb05hbWU7Citmb3JlYWNoIG15
ICRuYW1lIChAbmFtZXMpIHsKKyAgICBpZiAoZ3JlcCB7ICRfIGVxICRuYW1lIH0gQGludGVybmFs
UHJvcHJlcnRpZXMpIHsKKyAgICAgICAgbmV4dDsKKyAgICB9CisgICAgJG5hbWVzQW5kQWxpYXNl
c1RvTmFtZXskbmFtZX0gPSAkbmFtZTsKKyAgICBmb3IgbXkgJGFsaWFzIChAeyRuYW1lVG9BbGlh
c2VzeyRuYW1lfX0pIHsKKyAgICAgICAgJG5hbWVzQW5kQWxpYXNlc1RvTmFtZXskYWxpYXN9ID0g
JG5hbWU7CisgICAgfQorfQorbXkgQG5hbWVzQW5kQWxpYXNlcyA9IHNvcnQga2V5cyglbmFtZXNB
bmRBbGlhc2VzVG9OYW1lKTsKKworCisjIEZJWE1FOiBUaGluZ3MgdGhhdCBzdGlsbCBuZWVkIHRv
IGJlIGRvbmU6CisjIC0gRmlndXJlIG91dCBpZiB0aGVyZSBhbnkgbmFtZXMgd2Ugc2hvdWxkIHJl
bW92ZSAoZS5nLiBpbnRlcm5hbCBvbmx5IG9uZXM/KQorIyAtIEFkZCBFbmFibGVkQnlTZXR0aW5n
L0VuYWJsZWRBdFJ1bnRpbWUgZXh0ZW5kZWQgYXR0cmlidXRlcy4KK29wZW4gQ1NTX1NUWUxFX0RF
Q0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCwgIj4iLCAiQ1NTU3R5bGVEZWNsYXJhdGlvbitQ
cm9wZXJ0eU5hbWVzLmlkbCIgb3IgZGllICJDb3VsZCBub3Qgb3BlbiBDU1NTdHlsZURlY2xhcmF0
aW9uK1Byb3BlcnR5TmFtZXMuaWRsIGZvciB3cml0aW5nXG4iOworcHJpbnQgQ1NTX1NUWUxFX0RF
Q0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsKKy8vIFRoaXMgZmlsZSBpcyBh
dXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tICRpbnB1dEZpbGUgYnkgdGhlIG1ha2Vwcm9wLnBs
IHNjcmlwdC4gRG8gbm90IGVkaXQgaXQuCisKK3R5cGVkZWYgVVNWU3RyaW5nIENTU09NU3RyaW5n
OworCitwYXJ0aWFsIGludGVyZmFjZSBDU1NTdHlsZURlY2xhcmF0aW9uIHsKK0VPRgorIAorcHJp
bnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsKKyAg
ICAvLyBGb3IgZWFjaCBDU1MgcHJvcGVydHkgcHJvcGVydHkgdGhhdCBpcyBhIHN1cHBvcnRlZCBD
U1MgcHJvcGVydHksIHRoZSBmb2xsb3dpbmcKKyAgICAvLyBwYXJ0aWFsIGludGVyZmFjZSBhcHBs
aWVzIHdoZXJlIGNhbWVsLWNhc2VkIGF0dHJpYnV0ZSBpcyBvYnRhaW5lZCBieSBydW5uaW5nIHRo
ZQorICAgIC8vIENTUyBwcm9wZXJ0eSB0byBJREwgYXR0cmlidXRlIGFsZ29yaXRobSBmb3IgcHJv
cGVydHkuCisgICAgLy8gRXhhbXBsZTogZm9udC1zaXplIC0+IGVsZW1lbnQuc3R5bGUuZm9udFNp
emUKKyAgICAvLyBFeGFtcGxlOiAtd2Via2l0LXRyYW5zZm9ybSAtPiBlbGVtZW50LnN0eWxlLldl
YmtpdFRyYW5zZm9ybQorICAgIC8vIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgX2NhbWVsX2Nhc2VkX2F0dHJpYnV0ZTsKK0VPRgor
Citmb3JlYWNoIG15ICRuYW1lT3JBbGlhcyAoQG5hbWVzQW5kQWxpYXNlcykgeworICAgIG15ICRj
YW1lbENhc2VkQXR0cmlidXRlTmFtZSA9IGNzc1Byb3BlcnR5VG9JRExBdHRyaWJ1dGUoJG5hbWVP
ckFsaWFzLCAwKTsKKyAgICBteSAkbmFtZSA9ICRuYW1lc0FuZEFsaWFzZXNUb05hbWV7JG5hbWVP
ckFsaWFzfTsKKyAgICBteSAkcHJvcGVydHlJZCA9ICRuYW1lVG9JZHskbmFtZXNBbmRBbGlhc2Vz
VG9OYW1leyRuYW1lfX07CisgICAgCisgICAgbXkgQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzID0g
KCJDU1NQcm9wZXJ0eT0ke3Byb3BlcnR5SWR9Iik7CisgICAgcHVzaChAZXh0ZW5kZWRBdHRyaWJ1
dGVWYWx1ZXMsICJFbmFibGVkQnlTZXR0aW5nPSR7c2V0dGluZ3NGbGFnc3skbmFtZX19IikgaWYg
JHNldHRpbmdzRmxhZ3N7JG5hbWV9OworICAgIHB1c2goQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVz
LCAiRW5hYmxlZEF0UnVudGltZT0ke3J1bnRpbWVGbGFnc3skbmFtZX19IikgaWYgJHJ1bnRpbWVG
bGFnc3skbmFtZX07CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlcyA9IGpvaW4oIiwgIiwgQGV4
dGVuZGVkQXR0cmlidXRlVmFsdWVzKTsKKworICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElP
Tl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1
dGVzfV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgJHtj
YW1lbENhc2VkQXR0cmlidXRlTmFtZX07XG4iOworfQorCitwcmludCBDU1NfU1RZTEVfREVDTEFS
QVRJT05fUFJPUEVSVFlfTkFNRVNfSURMIDw8ICJFT0YiOworCisgICAgLy8gRm9yIGVhY2ggQ1NT
IHByb3BlcnR5IHByb3BlcnR5IHRoYXQgaXMgYSBzdXBwb3J0ZWQgQ1NTIHByb3BlcnR5IGFuZCB0
aGF0IGJlZ2lucworICAgIC8vIHdpdGggdGhlIHN0cmluZyAtd2Via2l0LSwgdGhlIGZvbGxvd2lu
ZyBwYXJ0aWFsIGludGVyZmFjZSBhcHBsaWVzIHdoZXJlIHdlYmtpdC1jYXNlZAorICAgIC8vIGF0
dHJpYnV0ZSBpcyBvYnRhaW5lZCBieSBydW5uaW5nIHRoZSBDU1MgcHJvcGVydHkgdG8gSURMIGF0
dHJpYnV0ZSBhbGdvcml0aG0gZm9yCisgICAgLy8gcHJvcGVydHksIHdpdGggdGhlIGxvd2VyY2Fz
ZSBmaXJzdCBmbGFnIHNldC4KKyAgICAvLyBFeGFtcGxlOiAtd2Via2l0LXRyYW5zZm9ybSAtPiBl
bGVtZW50LnN0eWxlLndlYmtpdFRyYW5zZm9ybQorICAgIC8vIFtDRVJlYWN0aW9uc10gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgX3dlYmtpdF9jYXNlZF9h
dHRyaWJ1dGU7CitFT0YKKworZm9yZWFjaCBteSAkbmFtZU9yQWxpYXMgKGdyZXAgeyAkXyA9fiAv
Xlwtd2Via2l0XC0vIH0gQG5hbWVzQW5kQWxpYXNlcykgeworICAgIG15ICR3ZWJraXRDYXNlZEF0
dHJpYnV0ZU5hbWUgPSBjc3NQcm9wZXJ0eVRvSURMQXR0cmlidXRlKCRuYW1lT3JBbGlhcywgMSk7
CisgICAgbXkgJG5hbWUgPSAkbmFtZXNBbmRBbGlhc2VzVG9OYW1leyRuYW1lT3JBbGlhc307Cisg
ICAgbXkgJHByb3BlcnR5SWQgPSAkbmFtZVRvSWR7JG5hbWVzQW5kQWxpYXNlc1RvTmFtZXskbmFt
ZX19OworICAgIAorICAgIG15IEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcyA9ICgiQ1NTUHJvcGVy
dHk9JHtwcm9wZXJ0eUlkfSIpOworICAgIHB1c2goQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzLCAi
RW5hYmxlZEJ5U2V0dGluZz0ke3NldHRpbmdzRmxhZ3N7JG5hbWV9fSIpIGlmICRzZXR0aW5nc0Zs
YWdzeyRuYW1lfTsKKyAgICBwdXNoKEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcywgIkVuYWJsZWRB
dFJ1bnRpbWU9JHtydW50aW1lRmxhZ3N7JG5hbWV9fSIpIGlmICRydW50aW1lRmxhZ3N7JG5hbWV9
OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZXMgPSBqb2luKCIsICIsIEBleHRlbmRlZEF0dHJp
YnV0ZVZhbHVlcyk7CisKKyAgICBwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlf
TkFNRVNfSURMICIgICAgW0NFUmVhY3Rpb25zLCAke2V4dGVuZGVkQXR0cmlidXRlc31dIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nICR7d2Via2l0Q2FzZWRB
dHRyaWJ1dGVOYW1lfTtcbiI7Cit9CisKK3ByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9Q
RVJUWV9OQU1FU19JREwgPDwgIkVPRiI7CisKKyAgICAvLyBGb3IgZWFjaCBDU1MgcHJvcGVydHkg
cHJvcGVydHkgdGhhdCBpcyBhIHN1cHBvcnRlZCBDU1MgcHJvcGVydHksIGV4Y2VwdCBmb3IKKyAg
ICAvLyBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBubyAiLSIgKFUrMDAyRCkgaW4gdGhlIHByb3BlcnR5
IG5hbWUsIHRoZSBmb2xsb3dpbmcgcGFydGlhbAorICAgIC8vIGludGVyZmFjZSBhcHBsaWVzIHdo
ZXJlIGRhc2hlZCBhdHRyaWJ1dGUgaXMgcHJvcGVydHkuCisgICAgLy8gRXhhbXBsZTogZm9udC1z
aXplIC0+IGVsZW1lbnQuc3R5bGVbJ2ZvbnQtc2l6ZSddCisgICAgLy8gRXhhbXBsZTogLXdlYmtp
dC10cmFuc2Zvcm0gLT4gZWxlbWVudC5zdHlsZS5bJy13ZWJraXQtdHJhbnNmb3JtJ10KKyAgICAv
LyBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIF9kYXNoZWRfYXR0cmlidXRlOworRU9GCitmb3JlYWNoIG15ICRuYW1lT3JBbGlhcyAo
Z3JlcCB7ICRfID1+IC9cLS8gfSBAbmFtZXNBbmRBbGlhc2VzKSB7CisgICAgbXkgJGRhc2hlZEF0
dHJpYnV0ZU5hbWUgPSAkbmFtZU9yQWxpYXM7CisgICAgbXkgJG5hbWUgPSAkbmFtZXNBbmRBbGlh
c2VzVG9OYW1leyRuYW1lT3JBbGlhc307CisgICAgbXkgJHByb3BlcnR5SWQgPSAkbmFtZVRvSWR7
JG5hbWVzQW5kQWxpYXNlc1RvTmFtZXskbmFtZX19OworICAgIAorICAgIG15IEBleHRlbmRlZEF0
dHJpYnV0ZVZhbHVlcyA9ICgiQ1NTUHJvcGVydHk9JHtwcm9wZXJ0eUlkfSIpOworICAgIHB1c2go
QGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzLCAiRW5hYmxlZEJ5U2V0dGluZz0ke3NldHRpbmdzRmxh
Z3N7JG5hbWV9fSIpIGlmICRzZXR0aW5nc0ZsYWdzeyRuYW1lfTsKKyAgICBwdXNoKEBleHRlbmRl
ZEF0dHJpYnV0ZVZhbHVlcywgIkVuYWJsZWRBdFJ1bnRpbWU9JHtydW50aW1lRmxhZ3N7JG5hbWV9
fSIpIGlmICRydW50aW1lRmxhZ3N7JG5hbWV9OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZXMg
PSBqb2luKCIsICIsIEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcyk7CisKKyAgICBwcmludCBDU1Nf
U1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVhY3Rpb25zLCAk
e2V4dGVuZGVkQXR0cmlidXRlc31dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nICR7ZGFzaGVkQXR0cmlidXRlTmFtZX07XG4iOworfQorCitwcmludCBDU1Nf
U1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMIDw8ICJFT0YiOworfTsKK0VPRgor
CitjbG9zZSBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMOwo=
</data>
<flag name="commit-queue"
          id="427527"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411349</attachid>
            <date>2020-10-14 10:52:53 -0700</date>
            <delta_ts>2020-10-14 19:30:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217623-20201014105252.patch</filename>
            <type>text/plain</type>
            <size>20989</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2ODQ3MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDIwLTEwLTEzICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIGJy
ZWFrcyBKUyBzcGVjIChwcm9wZXJ0aWVzIG5vdCBzaG93aW5nIHVwIGluIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eU5hbWVzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE3NjIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW1dJUF0KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG06CisgICAgICAgIChHZW5lcmF0ZUF0dHJpYnV0ZUdldHRlckJvZHlEZWZpbml0aW9uKToK
KyAgICAgICAgKEdlbmVyYXRlQXR0cmlidXRlU2V0dGVyQm9keURlZmluaXRpb24pOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uOgorICAgICAgICAqIGNzcy9D
U1NTdHlsZURlY2xhcmF0aW9uLmlkbDoKKyAgICAgICAgKiBjc3MvbWFrZXByb3AucGw6CisgICAg
ICAgIChjc3NQcm9wZXJ0eVRvSURMQXR0cmlidXRlKToKKwogMjAyMC0xMC0xNCAgRGV2aW4gUm91
c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUkVHUkVT
U0lPTihyMjY3MTQ4KTogbmV3IEJpZyBTdXIgc3R5bGVzIGFyZSBub3QgdXNlZApJbmRleDogU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDI2ODQ3MykKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xODc5LDcgKzE4NzksNyBAQCBsaXN0KEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMgJHtXZWJDb3JlX0RFCiAKICMgR2VuZXJhdGUgQ1NTIHByb3BlcnR5
IG5hbWVzCiBhZGRfY3VzdG9tX2NvbW1hbmQoCi0gICAgT1VUUFVUICR7V2ViQ29yZV9ERVJJVkVE
X1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0aWVzLmpzb24gJHtXZWJDb3JlX0RFUklWRURfU09VUkNF
U19ESVJ9L0NTU1Byb3BlcnR5TmFtZXMuaCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0v
Q1NTUHJvcGVydHlOYW1lcy5jcHAgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1By
b3BlcnR5TmFtZXMuZ3BlcmYgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0eWxlQnVp
bGRlckdlbmVyYXRlZC5jcHAgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0eWxlUHJv
cGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuaCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0v
U3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5jcHAKKyAgICBPVVRQVVQgJHtXZWJDb3Jl
X0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1Byb3BlcnRpZXMuanNvbiAke1dlYkNvcmVfREVSSVZF
RF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5oICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJD
RVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVzLmNwcCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vQ1NTUHJvcGVydHlOYW1lcy5ncGVyZiAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0v
U3R5bGVCdWlsZGVyR2VuZXJhdGVkLmNwcCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0v
U3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5oICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJD
RVNfRElSfS9TdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmNwcCAke1dlYkNvcmVfREVS
SVZFRF9TT1VSQ0VTX0RJUn0vQ1NTU3R5bGVEZWNsYXJhdGlvbitQcm9wZXJ0eU5hbWVzLmlkbAog
ICAgIE1BSU5fREVQRU5ERU5DWSAke1dFQkNPUkVfRElSfS9jc3MvbWFrZXByb3AucGwKICAgICBE
RVBFTkRTICR7V2ViQ29yZV9DU1NfUFJPUEVSVFlfTkFNRVN9CiAgICAgV09SS0lOR19ESVJFQ1RP
UlkgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9CkBAIC0xODg5LDYgKzE4ODksNyBAQCBh
ZGRfY3VzdG9tX2NvbW1hbmQoCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtXZWJDb3Jl
X0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1Byb3BlcnR5TmFtZXMuY3BwKQogbGlzdChBUFBFTkQg
V2ViQ29yZV9TT1VSQ0VTICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZUJ1aWxk
ZXJHZW5lcmF0ZWQuY3BwKQogbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTICR7V2ViQ29yZV9E
RVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmNwcCkK
K2xpc3QoQVBQRU5EIFdlYkNvcmVfSURMX0ZJTEVTICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNf
RElSfS9DU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsKQogQUREX1NPVVJDRV9X
RUJDT1JFX0RFUklWRURfREVQRU5ERU5DSUVTKCR7V0VCQ09SRV9ESVJ9L2Nzcy9DU1NQYXJzZXIu
Y3BwIENTU1ZhbHVlS2V5d29yZHMuaCkKIAogIyBHZW5lcmF0ZSBDU1MgdmFsdWUga2V5d29yZHMK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CShyZXZpc2lvbiAyNjg0NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAkod29ya2luZyBjb3B5KQpAQCAtMyw2ICszLDcgQEAgJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYgogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zLmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1Byb3BlcnR5
TmFtZXMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9D
U1NQcm9wZXJ0eU5hbWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0NTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5pZGwKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1ZhbHVlS2V5d29yZHMuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9DU1NWYWx1ZUtleXdv
cmRzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NvbG9y
RGF0YS5jcHAKQEAgLTI5MCw2ICsyOTEsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0NTU1J1bGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNDU1NSdWxlTGlzdC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTQ1NTUnVsZUxpc3QuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNDU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuY3BwCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU1N0eWxlRGVj
bGFyYXRpb24rUHJvcGVydHlOYW1lcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0NTU1N0eWxlRGVjbGFyYXRpb24uY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU1N0eWxlRGVjbGFyYXRpb24uaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NTdHlsZVJ1bGUu
Y3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDI2ODQ3MykK
KysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAg
LTEzMjcsNiArMTMyNyw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL3ht
bC9YUGF0aFJlc3VsdC5pZGwgXAogICAgICQoV2ViQ29yZSkveG1sL1hTTFRQcm9jZXNzb3IuaWRs
IFwKICAgICBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmlkbCBcCisgICAgQ1NTU3R5bGVEZWNs
YXJhdGlvbitQcm9wZXJ0eU5hbWVzLmlkbCBcCiAjCiAKICMgLS0tLS0tLS0KQEAgLTE0MTgsNiAr
MTQxOSw3IEBAIGFsbCA6IFwKICAgICBTdHlsZUJ1aWxkZXJHZW5lcmF0ZWQuY3BwIFwKICAgICBT
dHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmNwcCBcCiAgICAgU3R5bGVQcm9wZXJ0eVNo
b3J0aGFuZEZ1bmN0aW9ucy5oIFwKKyAgICBDU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFt
ZXMuaWRsIFwKICAgICBVc2VyQWdlbnRTdHlsZVNoZWV0cy5oIFwKICAgICBXZWJLaXRGb250RmFt
aWx5TmFtZXMuY3BwIFwKICAgICBXZWJLaXRGb250RmFtaWx5TmFtZXMuaCBcCkBAIC0xNDQ1LDYg
KzE0NDcsNyBAQCBDU1NfUFJPUEVSVFlfTkFNRV9GSUxFUyA9IFwKICAgICBTdHlsZUJ1aWxkZXJH
ZW5lcmF0ZWQuY3BwIFwKICAgICBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmNwcCBc
CiAgICAgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5oIFwKKyAgICBDU1NTdHlsZURl
Y2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsIFwKICMKIENTU19QUk9QRVJUWV9OQU1FX0ZJTEVT
X1BBVFRFUk5TID0gJChzdWJzdCAuLCUsJChDU1NfUFJPUEVSVFlfTkFNRV9GSUxFUykpCiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCShyZXZpc2lvbiAyNjg0NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtMTg1Myw3ICsxODUzLDcg
QEAgc3ViIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lCiAKICAgICAkbmFtZSA9fiBzLy0v
X2Rhc2hfL2c7CiAKLSAgICByZXR1cm4gJG5hbWU7CisgICAgcmV0dXJuICRuYW1lID1+IC9eXy8g
PyAkbmFtZSA6ICdfJyAuICRuYW1lOwogfQogCiBzdWIgR2V0QXR0cmlidXRlR2V0dGVyTmFtZQpA
QCAtMTg2MSw5ICsxODYxLDkgQEAgc3ViIEdldEF0dHJpYnV0ZUdldHRlck5hbWUKICAgICBteSAo
JGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSkgPSBAXzsKIAogICAgIHJldHVybiBH
ZXRKU0J1aWx0aW5GdW5jdGlvbk5hbWUoJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSkgaWYgSXNKU0J1
aWx0aW4oJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7Ci0gICAgcmV0dXJuICRjb2RlR2VuZXJhdG9y
LT5XS19sY2ZpcnN0KCRjbGFzc05hbWUpIC4gIkNvbnN0cnVjdG9yIiAuICRjb2RlR2VuZXJhdG9y
LT5XS191Y2ZpcnN0KE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5h
bWUpKSBpZiAkYXR0cmlidXRlLT5pc1N0YXRpYzsKLSAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3It
PldLX2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdChNYW5n
bGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSkgLiAiQ29uc3RydWN0
b3IiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVHlwZSgkYXR0cmlidXRlLT50eXBl
KTsKLSAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAk
Y29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdChNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgk
YXR0cmlidXRlLT5uYW1lKSk7CisgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0
KCRjbGFzc05hbWUpIC4gIkNvbnN0cnVjdG9yIiAuIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25O
YW1lKCRhdHRyaWJ1dGUtPm5hbWUpIGlmICRhdHRyaWJ1dGUtPmlzU3RhdGljOworICAgIHJldHVy
biAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkY2xhc3NOYW1lKSAuIE1hbmdsZUF0dHJpYnV0
ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpIC4gIkNvbnN0cnVjdG9yIiBpZiAkY29k
ZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3RvclR5cGUoJGF0dHJpYnV0ZS0+dHlwZSk7CisgICAgcmV0
dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUpIC4gTWFuZ2xlQXR0cmli
dXRlT3JGdW5jdGlvbk5hbWUoJGF0dHJpYnV0ZS0+bmFtZSk7CiB9CiAKIHN1YiBHZXRBdHRyaWJ1
dGVTZXR0ZXJOYW1lCkBAIC0xODcxLDkgKzE4NzEsOSBAQCBzdWIgR2V0QXR0cmlidXRlU2V0dGVy
TmFtZQogICAgIG15ICgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKSA9IEBfOwog
CiAgICAgcmV0dXJuICJzZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoR2V0SlNCdWls
dGluRnVuY3Rpb25OYW1lKCRjbGFzc05hbWUsICRhdHRyaWJ1dGUpKSBpZiBJc0pTQnVpbHRpbigk
aW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKLSAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRv
ci0+V0tfdWNmaXJzdCgkY2xhc3NOYW1lKSAuICJDb25zdHJ1Y3RvciIgLiAkY29kZUdlbmVyYXRv
ci0+V0tfdWNmaXJzdChNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5u
YW1lKSkgaWYgJGF0dHJpYnV0ZS0+aXNTdGF0aWM7Ci0gICAgcmV0dXJuICJzZXQiIC4gJGNvZGVH
ZW5lcmF0b3ItPldLX3VjZmlyc3QoJGNsYXNzTmFtZSkgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNm
aXJzdChNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSkgLiAi
Q29uc3RydWN0b3IiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVHlwZSgkYXR0cmli
dXRlLT50eXBlKTsKLSAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJz
dCgkY2xhc3NOYW1lKSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KE1hbmdsZUF0dHJpYnV0
ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpKTsKKyAgICByZXR1cm4gInNldCIgLiAk
Y29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY2xhc3NOYW1lKSAuICJDb25zdHJ1Y3RvciIgLiBN
YW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSBpZiAkYXR0cmli
dXRlLT5pc1N0YXRpYzsKKyAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNm
aXJzdCgkY2xhc3NOYW1lKSAuIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1
dGUtPm5hbWUpIC4gIkNvbnN0cnVjdG9yIiBpZiAkY29kZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3Rv
clR5cGUoJGF0dHJpYnV0ZS0+dHlwZSk7CisgICAgcmV0dXJuICJzZXQiIC4gJGNvZGVHZW5lcmF0
b3ItPldLX3VjZmlyc3QoJGNsYXNzTmFtZSkgLiBNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFt
ZSgkYXR0cmlidXRlLT5uYW1lKTsKIH0KIAogc3ViIEdldEZ1bmN0aW9uTmFtZQpAQCAtMTg4Niw3
ICsxODg2LDcgQEAgc3ViIEdldEZ1bmN0aW9uTmFtZQogICAgICRmdW5jdGlvbk5hbWUgPSAiU3lt
Ym9sSXRlcmF0b3IiIGlmICRmdW5jdGlvbk5hbWUgZXEgIltTeW1ib2wuSXRlcmF0b3JdIjsKIAog
ICAgIG15ICRraW5kID0gJG9wZXJhdGlvbi0+aXNTdGF0aWMgPyAiQ29uc3RydWN0b3IiIDogKE9w
ZXJhdGlvblNob3VsZEJlT25JbnN0YW5jZSgkaW50ZXJmYWNlLCAkb3BlcmF0aW9uKSA/ICJJbnN0
YW5jZSIgOiAiUHJvdG90eXBlIik7Ci0gICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2Zp
cnN0KCRjbGFzc05hbWUpIC4gJGtpbmQgLiAiRnVuY3Rpb24iIC4gJGNvZGVHZW5lcmF0b3ItPldL
X3VjZmlyc3QoTWFuZ2xlQXR0cmlidXRlT3JGdW5jdGlvbk5hbWUoJGZ1bmN0aW9uTmFtZSkpOwor
ICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkY2xhc3NOYW1lKSAuICRraW5k
IC4gIkZ1bmN0aW9uIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRmdW5jdGlvbk5hbWUp
OwogfQogCiBzdWIgR2V0RnVsbHlRdWFsaWZpZWRJbXBsZW1lbnRhdGlvbkNhbGxOYW1lCkBAIC0z
OTc5LDYgKzM5NzksOSBAQCBzdWIgR2V0U2tpcFZUYWJsZVZhbGlkYXRpb25Gb3JJbnRlcmZhY2UK
IHN1YiBUb01ldGhvZE5hbWUKIHsKICAgICBteSAkcGFyYW0gPSBzaGlmdDsKKyAgICAKKyAgICBy
ZXR1cm4gJHBhcmFtIGlmICRwYXJhbSA9fiAvXkNTU09NLzsKKwogICAgIG15ICRyZXQgPSBsY2Zp
cnN0KCRwYXJhbSk7CiAgICAgJHJldCA9fiBzL2NTUy9jc3MvIGlmICRyZXQgPX4gL15jU1MvOwog
ICAgICRyZXQgPX4gcy9kT00vZG9tLyBpZiAkcmV0ID1+IC9eZE9NLzsKQEAgLTUzMjIsNiArNTMy
NSwxMyBAQCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVHZXR0ZXJCb2R5RGVmaW5pdGlvCiAgICAgICAg
ICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlMiIC4gJGNvbnN0cnVjdG9yVHlwZSAuICIuaCIsICRj
b25kaXRpb25hbCk7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJu
IEpTIiAuICRjb25zdHJ1Y3RvclR5cGUgLiAiOjoke2NvbnN0cnVjdG9yR2V0dGVyfShKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7XG4i
KTsKICAgICAgICAgfQorICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+e0NTU1Byb3BlcnR5fSkgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyJDU1NQcm9wZXJ0eU5h
bWVzLmgifSA9IDE7CisgICAgICAgIG15ICRwcm9wZXJ0eUlEID0gJGF0dHJpYnV0ZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Q1NTUHJvcGVydHl9OworICAgICAgICBteSAkdG9KU0V4cHJlc3Npb24g
PSBOYXRpdmVUb0pTVmFsdWVVc2luZ1JlZmVyZW5jZXMoJGF0dHJpYnV0ZSwgJGludGVyZmFjZSwg
ImltcGwuZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsKENTU1Byb3BlcnR5JHtwcm9wZXJ0eUlEfSki
LCAiKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkiKTsKKyAgICAgICAgCisgICAgICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICBhdXRvJiBpbXBsID0gdGhpc09iamVjdC53cmFwcGVkKCk7XG4i
KTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAoJHt0b0pTRXhwcmVzc2lvbn0pKTtcbiIpOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIGlmICgkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDYWNoZWRBdHRyaWJ1dGV9
KSB7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKEpTVmFsdWUgY2Fj
aGVkVmFsdWUgPSB0aGlzT2JqZWN0Lm1fIiAuICRhdHRyaWJ1dGUtPm5hbWUgLiAiLmdldCgpKVxu
Iik7CkBAIC01NDY2LDYgKzU0NzYsMjAgQEAgc3ViIEdlbmVyYXRlQXR0cmlidXRlU2V0dGVyQm9k
eURlZmluaXRpbwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgdm0uaGVhcC53cml0
ZUJhcnJpZXIoJnRoaXNPYmplY3QsIHZhbHVlKTtcbiIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgZW5zdXJlU3RpbGxBbGl2ZUhlcmUodmFsdWUpO1xuXG4iKTsKICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiB0cnVlO1xuIik7CisgICAgfSBlbHNpZiAo
JGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q1NTUHJvcGVydHl9KSB7CisgICAgICAg
ICRpbXBsSW5jbHVkZXN7IkNTU1Byb3BlcnR5TmFtZXMuaCJ9ID0gMTsKKworICAgICAgICBteSAk
cHJvcGVydHlJRCA9ICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NTU1Byb3BlcnR5
fTsKKyAgICAgICAgbXkgJGV4Y2VwdGlvblRocm93ZXIgPSBHZXRBdHRyaWJ1dGVFeGNlcHRpb25U
aHJvd2VyKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOworICAgICAgICBteSAkdG9OYXRpdmVFeHBy
ZXNzaW9uID0gSlNWYWx1ZVRvTmF0aXZlKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUsICJ2YWx1ZSIs
ICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NvbmRpdGlvbmFsfSwgIiZsZXhpY2Fs
R2xvYmFsT2JqZWN0IiwgImxleGljYWxHbG9iYWxPYmplY3QiLCAidGhpc09iamVjdCIsICIqdGhp
c09iamVjdC5nbG9iYWxPYmplY3QoKSIsICRleGNlcHRpb25UaHJvd2VyKTsKKworICAgICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgp
O1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvIG5hdGl2ZVZhbHVl
ID0gJHt0b05hdGl2ZUV4cHJlc3Npb259O1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGZhbHNlKTtcbiIpOworICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgQXR0cmlidXRlU2V0dGVyOjpjYWxsKGxleGlj
YWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7XG4iKTsKKyAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gaW1wbC5zZXRQcm9wZXJ0eUludGVybmFsKENTU1By
b3BlcnR5JHtwcm9wZXJ0eUlEfSwgV1RGTW92ZShuYXRpdmVWYWx1ZSksIGZhbHNlKTtcbiIpOwor
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgfSk7XG4iKTsKKyAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAgfSBlbHNpZiAoJGlzQ29u
c3RydWN0b3IpIHsKICAgICAgICAgbXkgJGNvbnN0cnVjdG9yVHlwZSA9ICRhdHRyaWJ1dGUtPnR5
cGUtPm5hbWU7CiAgICAgICAgICRjb25zdHJ1Y3RvclR5cGUgPX4gcy9Db25zdHJ1Y3RvciQvLzsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29u
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmli
dXRlcy5qc29uCShyZXZpc2lvbiAyNjg0NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksMTAg
QEAKICAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcv
bXVsdGlwYWdlL2N1c3RvbS1lbGVtZW50cy5odG1sI2NlcmVhY3Rpb25zIgogICAgICAgICAgICAg
fQogICAgICAgICB9LAorICAgICAgICAiQ1NTUHJvcGVydHkiOiB7CisgICAgICAgICAgICAiY29u
dGV4dHNBbGxvd2VkIjogWyJhdHRyaWJ1dGUiXSwKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbIioi
XQorICAgICAgICB9LAogICAgICAgICAiQ2FjaGVkQXR0cmlidXRlIjogewogICAgICAgICAgICAg
ImNvbnRleHRzQWxsb3dlZCI6IFsiYXR0cmlidXRlIl0KICAgICAgICAgfSwKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwJKHJldmlzaW9uIDI2ODQ3MykK
KysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIw
MDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2
LCAyMDA3LCAyMDA5LCAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCkBAIC0xOCw2ICsxOCw4IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KICAqLwogCit0eXBlZGVmIFVTVlN0cmluZyBDU1NPTVN0cmluZzsKKwogWwogICAgIEV4cG9y
dE1hY3JvPVdFQkNPUkVfRVhQT1JULAogICAgIERlZmF1bHREZWZpbmVPd25Qcm9wZXJ0eSwKQEAg
LTI3LDMxICsyOSwxOSBAQAogICAgIFNraXBWVGFibGVWYWxpZGF0aW9uLAogICAgIEV4cG9zZWQ9
V2luZG93CiBdIGludGVyZmFjZSBDU1NTdHlsZURlY2xhcmF0aW9uIHsKLSAgICBbQ0VSZWFjdGlv
bnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgY3NzVGV4dDsKLQotICAgIERPTVN0cmluZyBnZXRQcm9w
ZXJ0eVZhbHVlKERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwotCi0gICAgW0NFUmVhY3Rpb25zLCBN
YXlUaHJvd0V4Y2VwdGlvbl0gRE9NU3RyaW5nIHJlbW92ZVByb3BlcnR5KERPTVN0cmluZyBwcm9w
ZXJ0eU5hbWUpOwotICAgIERPTVN0cmluZz8gZ2V0UHJvcGVydHlQcmlvcml0eShET01TdHJpbmcg
cHJvcGVydHlOYW1lKTsKLQotICAgIFtDRVJlYWN0aW9ucywgTWF5VGhyb3dFeGNlcHRpb25dIHVu
ZGVmaW5lZCBzZXRQcm9wZXJ0eShET01TdHJpbmcgcHJvcGVydHlOYW1lLCBbTGVnYWN5TnVsbFRv
RW1wdHlTdHJpbmddIERPTVN0cmluZyB2YWx1ZSwgb3B0aW9uYWwgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBET01TdHJpbmcgcHJpb3JpdHkgPSAiIik7Ci0KKyAgICBbQ0VSZWFjdGlvbnNdIGF0
dHJpYnV0ZSBDU1NPTVN0cmluZyBjc3NUZXh0OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBsb25nIGxlbmd0aDsKLSAgICBnZXR0ZXIgRE9NU3RyaW5nIGl0ZW0odW5zaWduZWQgbG9u
ZyBpbmRleCk7CisgICAgZ2V0dGVyIENTU09NU3RyaW5nIGl0ZW0odW5zaWduZWQgbG9uZyBpbmRl
eCk7CisgICAgQ1NTT01TdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZShDU1NPTVN0cmluZyBwcm9wZXJ0
eSk7CisgICAgLy8gRklYTUU6IFRoZSByZXR1cm4gdmFsdWUgb2YgJ2dldFByb3BlcnR5UHJpb3Jp
dHknIHNob3VsZCBub3QgYmUgbnVsbGFibGUuCisgICAgQ1NTT01TdHJpbmc/IGdldFByb3BlcnR5
UHJpb3JpdHkoQ1NTT01TdHJpbmcgcHJvcGVydHkpOworICAgIFtDRVJlYWN0aW9ucywgTWF5VGhy
b3dFeGNlcHRpb25dIHVuZGVmaW5lZCBzZXRQcm9wZXJ0eShDU1NPTVN0cmluZyBwcm9wZXJ0eSwg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB2YWx1ZSwgb3B0aW9uYWwgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBwcmlvcml0eSA9ICIiKTsKKyAgICBb
Q0VSZWFjdGlvbnMsIE1heVRocm93RXhjZXB0aW9uXSBDU1NPTVN0cmluZyByZW1vdmVQcm9wZXJ0
eShDU1NPTVN0cmluZyBwcm9wZXJ0eSk7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1J1bGU/
IHBhcmVudFJ1bGU7CisgICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyBjc3NGbG9hdDsKIAotICAgIFtDRVJlYWN0aW9uc10gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gRE9NU3RyaW5nIGNzc0Zsb2F0OwotCisg
ICAgLy8gTm9uLXN0YW5kYXJkLgogICAgIERPTVN0cmluZz8gZ2V0UHJvcGVydHlTaG9ydGhhbmQo
b3B0aW9uYWwgRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7CiAgICAgYm9vbGVhbiBpc1Byb3BlcnR5
SW1wbGljaXQob3B0aW9uYWwgRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7Ci0KLSAgICAvLyBVc2Ug
bmFtZWQgZ2V0dGVycy9zZXR0ZXJzIGZvciBhbGwgc3VwcG9ydCBDU1MgcHJvcGVydHkgbmFtZXMu
IFRoZSBzcGVjIHNheXMKLSAgICAvLyB0aGVzZSBzaG91bGQgYmUgbm9ybWFsIGF0dHJpYnV0ZXMs
IGJ1dCB0aGVyZSBhcmUgdG9vIG1hbnkgY29tYmluYXRpb25zIHdpdGgKLSAgICAvLyBwcmVmaXhl
cyBmb3IgdGhpcyB0byBiZSBwcmFjdGljYWwuIElmIHdlIHJlbW92ZSBsZWdhY3kgYWxpYXNlcywg
d2Ugc2hvdWxkCi0gICAgLy8gcmVjb25zaWRlciB0aGlzIGRlY2lzaW9uLgotICAgIGdldHRlciAo
RE9NU3RyaW5nIG9yIGRvdWJsZSkgKERPTVN0cmluZyBuYW1lKTsKLSAgICBbQ0VSZWFjdGlvbnMs
IENhbGxOYW1lZFNldHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9wZXJ0aWVzXSBzZXR0ZXIgdW5kZWZp
bmVkIChET01TdHJpbmcgbmFtZSwgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBET01TdHJpbmcg
dmFsdWUpOwotCi0gICAgLy8gVGhpcyBtZXRob2QgaXMgZGVwcmVjYXRlZCwgYW5kIHdlIHdvdWxk
IGxpa2UgdG8gZHJvcCBzdXBwb3J0IGZvciBpdCBzb21lZGF5CiAgICAgRGVwcmVjYXRlZENTU09N
VmFsdWU/IGdldFByb3BlcnR5Q1NTVmFsdWUoRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7CiB9OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvY3NzL21ha2Vwcm9wLnBsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAkocmV2aXNpb24gMjY4NDczKQorKysgU291cmNlL1dl
YkNvcmUvY3NzL21ha2Vwcm9wLnBsCSh3b3JraW5nIGNvcHkpCkBAIC0xMzU4LDMgKzEzNTgsMTI3
IEBAIGlmIChub3QgJGdwZXJmKSB7CiAgICAgJGdwZXJmID0gJEVOVntHUEVSRn0gPyAkRU5We0dQ
RVJGfSA6ICJncGVyZiI7CiB9CiBzeXN0ZW0oIlwiJGdwZXJmXCIgLS1rZXktcG9zaXRpb25zPVwi
KlwiIC1EIC1uIC1zIDIgQ1NTUHJvcGVydHlOYW1lcy5ncGVyZiAtLW91dHB1dC1maWxlPUNTU1By
b3BlcnR5TmFtZXMuY3BwIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7
CisKKworIyBHZW5lcmF0ZSBDU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsCisK
KyMgaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLyNjc3MtcHJvcGVydHktdG8taWRsLWF0
dHJpYnV0ZQorc3ViIGNzc1Byb3BlcnR5VG9JRExBdHRyaWJ1dGUoJCQpCit7CisgICAgbXkgJHBy
b3BlcnR5ID0gc2hpZnQ7CisgICAgbXkgJGxvd2VyY2FzZUZpcnN0ID0gc2hpZnQ7CisKKyAgICBt
eSAkb3V0cHV0ID0gIiI7CisgICAgbXkgJHVwcGVyY2FzZU5leHQgPSAwOworCisgICAgaWYgKCRs
b3dlcmNhc2VGaXJzdCkgeworICAgICAgICAkcHJvcGVydHkgPSBzdWJzdHIoJHByb3BlcnR5LCAx
KTsKKyAgICB9CisKKyAgICBmb3JlYWNoIG15ICRjaGFyYWN0ZXIgKHNwbGl0IC8vLCAkcHJvcGVy
dHkpIHsKKyAgICAgICAgaWYgKCRjaGFyYWN0ZXIgZXEgIi0iKSB7CisgICAgICAgICAgICAkdXBw
ZXJjYXNlTmV4dCA9IDE7CisgICAgICAgIH0gZWxzaWYgKCR1cHBlcmNhc2VOZXh0KSB7CisgICAg
ICAgICAgICAkdXBwZXJjYXNlTmV4dCA9IDA7CisgICAgICAgICAgICAkb3V0cHV0IC49IHVjICRj
aGFyYWN0ZXI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkb3V0cHV0IC49ICRjaGFy
YWN0ZXI7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcmV0dXJuICRvdXRwdXQ7Cit9CisK
K215ICVuYW1lc0FuZEFsaWFzZXNUb05hbWU7Citmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsK
KyAgICBpZiAoZ3JlcCB7ICRfIGVxICRuYW1lIH0gQGludGVybmFsUHJvcHJlcnRpZXMpIHsKKyAg
ICAgICAgbmV4dDsKKyAgICB9CisgICAgJG5hbWVzQW5kQWxpYXNlc1RvTmFtZXskbmFtZX0gPSAk
bmFtZTsKKyAgICBmb3IgbXkgJGFsaWFzIChAeyRuYW1lVG9BbGlhc2VzeyRuYW1lfX0pIHsKKyAg
ICAgICAgJG5hbWVzQW5kQWxpYXNlc1RvTmFtZXskYWxpYXN9ID0gJG5hbWU7CisgICAgfQorfQor
bXkgQG5hbWVzQW5kQWxpYXNlcyA9IHNvcnQga2V5cyglbmFtZXNBbmRBbGlhc2VzVG9OYW1lKTsK
Kworb3BlbiBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMLCAiPiIsICJD
U1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsIiBvciBkaWUgIkNvdWxkIG5vdCBv
cGVuIENTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5pZGwgZm9yIHdyaXRpbmdcbiI7
CitwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMIDw8ICJFT0Yi
OworLy8gVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gJGlucHV0Rmls
ZSBieSB0aGUgbWFrZXByb3AucGwgc2NyaXB0LiBEbyBub3QgZWRpdCBpdC4KKwordHlwZWRlZiBV
U1ZTdHJpbmcgQ1NTT01TdHJpbmc7CisKK3BhcnRpYWwgaW50ZXJmYWNlIENTU1N0eWxlRGVjbGFy
YXRpb24geworRU9GCisgCitwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFN
RVNfSURMIDw8ICJFT0YiOworICAgIC8vIEZvciBlYWNoIENTUyBwcm9wZXJ0eSBwcm9wZXJ0eSB0
aGF0IGlzIGEgc3VwcG9ydGVkIENTUyBwcm9wZXJ0eSwgdGhlIGZvbGxvd2luZworICAgIC8vIHBh
cnRpYWwgaW50ZXJmYWNlIGFwcGxpZXMgd2hlcmUgY2FtZWwtY2FzZWQgYXR0cmlidXRlIGlzIG9i
dGFpbmVkIGJ5IHJ1bm5pbmcgdGhlCisgICAgLy8gQ1NTIHByb3BlcnR5IHRvIElETCBhdHRyaWJ1
dGUgYWxnb3JpdGhtIGZvciBwcm9wZXJ0eS4KKyAgICAvLyBFeGFtcGxlOiBmb250LXNpemUgLT4g
ZWxlbWVudC5zdHlsZS5mb250U2l6ZQorICAgIC8vIEV4YW1wbGU6IC13ZWJraXQtdHJhbnNmb3Jt
IC0+IGVsZW1lbnQuc3R5bGUuV2Via2l0VHJhbnNmb3JtCisgICAgLy8gW0NFUmVhY3Rpb25zXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBfY2FtZWxfY2Fz
ZWRfYXR0cmlidXRlOworRU9GCisKK2ZvcmVhY2ggbXkgJG5hbWVPckFsaWFzIChAbmFtZXNBbmRB
bGlhc2VzKSB7CisgICAgbXkgJGNhbWVsQ2FzZWRBdHRyaWJ1dGVOYW1lID0gY3NzUHJvcGVydHlU
b0lETEF0dHJpYnV0ZSgkbmFtZU9yQWxpYXMsIDApOworICAgIG15ICRuYW1lID0gJG5hbWVzQW5k
QWxpYXNlc1RvTmFtZXskbmFtZU9yQWxpYXN9OworICAgIG15ICRwcm9wZXJ0eUlkID0gJG5hbWVU
b0lkeyRuYW1lc0FuZEFsaWFzZXNUb05hbWV7JG5hbWV9fTsKKyAgICAKKyAgICBteSBAZXh0ZW5k
ZWRBdHRyaWJ1dGVWYWx1ZXMgPSAoIkNTU1Byb3BlcnR5PSR7cHJvcGVydHlJZH0iKTsKKyAgICBw
dXNoKEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcywgIkVuYWJsZWRCeVNldHRpbmc9JHtzZXR0aW5n
c0ZsYWdzeyRuYW1lfX0iKSBpZiAkc2V0dGluZ3NGbGFnc3skbmFtZX07CisgICAgcHVzaChAZXh0
ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMsICJFbmFibGVkQXRSdW50aW1lPSR7cnVudGltZUZsYWdzeyRu
YW1lfX0iKSBpZiAkcnVudGltZUZsYWdzeyRuYW1lfTsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1
dGVzID0gam9pbigiLCAiLCBAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMpOworCisgICAgcHJpbnQg
Q1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCAiICAgIFtDRVJlYWN0aW9u
cywgJHtleHRlbmRlZEF0dHJpYnV0ZXN9XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyAke2NhbWVsQ2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiI7Cit9CisKK3By
aW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgPDwgIkVPRiI7CisK
KyAgICAvLyBGb3IgZWFjaCBDU1MgcHJvcGVydHkgcHJvcGVydHkgdGhhdCBpcyBhIHN1cHBvcnRl
ZCBDU1MgcHJvcGVydHkgYW5kIHRoYXQgYmVnaW5zCisgICAgLy8gd2l0aCB0aGUgc3RyaW5nIC13
ZWJraXQtLCB0aGUgZm9sbG93aW5nIHBhcnRpYWwgaW50ZXJmYWNlIGFwcGxpZXMgd2hlcmUgd2Vi
a2l0LWNhc2VkCisgICAgLy8gYXR0cmlidXRlIGlzIG9idGFpbmVkIGJ5IHJ1bm5pbmcgdGhlIENT
UyBwcm9wZXJ0eSB0byBJREwgYXR0cmlidXRlIGFsZ29yaXRobSBmb3IKKyAgICAvLyBwcm9wZXJ0
eSwgd2l0aCB0aGUgbG93ZXJjYXNlIGZpcnN0IGZsYWcgc2V0LgorICAgIC8vIEV4YW1wbGU6IC13
ZWJraXQtdHJhbnNmb3JtIC0+IGVsZW1lbnQuc3R5bGUud2Via2l0VHJhbnNmb3JtCisgICAgLy8g
W0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyBfd2Via2l0X2Nhc2VkX2F0dHJpYnV0ZTsKK0VPRgorCitmb3JlYWNoIG15ICRuYW1lT3JB
bGlhcyAoZ3JlcCB7ICRfID1+IC9eXC13ZWJraXRcLS8gfSBAbmFtZXNBbmRBbGlhc2VzKSB7Cisg
ICAgbXkgJHdlYmtpdENhc2VkQXR0cmlidXRlTmFtZSA9IGNzc1Byb3BlcnR5VG9JRExBdHRyaWJ1
dGUoJG5hbWVPckFsaWFzLCAxKTsKKyAgICBteSAkbmFtZSA9ICRuYW1lc0FuZEFsaWFzZXNUb05h
bWV7JG5hbWVPckFsaWFzfTsKKyAgICBteSAkcHJvcGVydHlJZCA9ICRuYW1lVG9JZHskbmFtZXNB
bmRBbGlhc2VzVG9OYW1leyRuYW1lfX07CisgICAgCisgICAgbXkgQGV4dGVuZGVkQXR0cmlidXRl
VmFsdWVzID0gKCJDU1NQcm9wZXJ0eT0ke3Byb3BlcnR5SWR9Iik7CisgICAgcHVzaChAZXh0ZW5k
ZWRBdHRyaWJ1dGVWYWx1ZXMsICJFbmFibGVkQnlTZXR0aW5nPSR7c2V0dGluZ3NGbGFnc3skbmFt
ZX19IikgaWYgJHNldHRpbmdzRmxhZ3N7JG5hbWV9OworICAgIHB1c2goQGV4dGVuZGVkQXR0cmli
dXRlVmFsdWVzLCAiRW5hYmxlZEF0UnVudGltZT0ke3J1bnRpbWVGbGFnc3skbmFtZX19IikgaWYg
JHJ1bnRpbWVGbGFnc3skbmFtZX07CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlcyA9IGpvaW4o
IiwgIiwgQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzKTsKKworICAgIHByaW50IENTU19TVFlMRV9E
RUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5k
ZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01T
dHJpbmcgJHt3ZWJraXRDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIjsKK30KKworcHJpbnQgQ1NTX1NU
WUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsKKworICAgIC8vIEZv
ciBlYWNoIENTUyBwcm9wZXJ0eSBwcm9wZXJ0eSB0aGF0IGlzIGEgc3VwcG9ydGVkIENTUyBwcm9w
ZXJ0eSwgZXhjZXB0IGZvcgorICAgIC8vIHByb3BlcnRpZXMgdGhhdCBoYXZlIG5vICItIiAoVSsw
MDJEKSBpbiB0aGUgcHJvcGVydHkgbmFtZSwgdGhlIGZvbGxvd2luZyBwYXJ0aWFsCisgICAgLy8g
aW50ZXJmYWNlIGFwcGxpZXMgd2hlcmUgZGFzaGVkIGF0dHJpYnV0ZSBpcyBwcm9wZXJ0eS4KKyAg
ICAvLyBFeGFtcGxlOiBmb250LXNpemUgLT4gZWxlbWVudC5zdHlsZVsnZm9udC1zaXplJ10KKyAg
ICAvLyBFeGFtcGxlOiAtd2Via2l0LXRyYW5zZm9ybSAtPiBlbGVtZW50LnN0eWxlLlsnLXdlYmtp
dC10cmFuc2Zvcm0nXQorICAgIC8vIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgX2Rhc2hlZF9hdHRyaWJ1dGU7CitFT0YKK2ZvcmVh
Y2ggbXkgJG5hbWVPckFsaWFzIChncmVwIHsgJF8gPX4gL1wtLyB9IEBuYW1lc0FuZEFsaWFzZXMp
IHsKKyAgICBteSAkZGFzaGVkQXR0cmlidXRlTmFtZSA9ICRuYW1lT3JBbGlhczsKKyAgICBteSAk
bmFtZSA9ICRuYW1lc0FuZEFsaWFzZXNUb05hbWV7JG5hbWVPckFsaWFzfTsKKyAgICBteSAkcHJv
cGVydHlJZCA9ICRuYW1lVG9JZHskbmFtZXNBbmRBbGlhc2VzVG9OYW1leyRuYW1lfX07CisgICAg
CisgICAgbXkgQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzID0gKCJDU1NQcm9wZXJ0eT0ke3Byb3Bl
cnR5SWR9Iik7CisgICAgcHVzaChAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMsICJFbmFibGVkQnlT
ZXR0aW5nPSR7c2V0dGluZ3NGbGFnc3skbmFtZX19IikgaWYgJHNldHRpbmdzRmxhZ3N7JG5hbWV9
OworICAgIHB1c2goQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzLCAiRW5hYmxlZEF0UnVudGltZT0k
e3J1bnRpbWVGbGFnc3skbmFtZX19IikgaWYgJHJ1bnRpbWVGbGFnc3skbmFtZX07CisgICAgbXkg
JGV4dGVuZGVkQXR0cmlidXRlcyA9IGpvaW4oIiwgIiwgQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVz
KTsKKworICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwg
IiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgJHtkYXNoZWRBdHRyaWJ1dGVOYW1lfTtc
biI7Cit9CisKK3ByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwg
PDwgIkVPRiI7Cit9OworRU9GCisKK2Nsb3NlIENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJU
WV9OQU1FU19JREw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>411363</attachid>
            <date>2020-10-14 12:19:46 -0700</date>
            <delta_ts>2020-10-14 12:19:46 -0700</delta_ts>
            <desc>CSSStyleDeclaration+PropertyNames.idl</desc>
            <filename>CSSStyleDeclaration+PropertyNames.idl</filename>
            <type>text/plain</type>
            <size>144702</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">Ly8gVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gQ1NTUHJvcGVydGll
cy5qc29uIGJ5IHRoZSBtYWtlcHJvcC5wbCBzY3JpcHQuIERvIG5vdCBlZGl0IGl0LgoKdHlwZWRl
ZiBVU1ZTdHJpbmcgQ1NTT01TdHJpbmc7CgpwYXJ0aWFsIGludGVyZmFjZSBDU1NTdHlsZURlY2xh
cmF0aW9uIHsKICAgIC8vIEZvciBlYWNoIENTUyBwcm9wZXJ0eSBwcm9wZXJ0eSB0aGF0IGlzIGEg
c3VwcG9ydGVkIENTUyBwcm9wZXJ0eSwgdGhlIGZvbGxvd2luZwogICAgLy8gcGFydGlhbCBpbnRl
cmZhY2UgYXBwbGllcyB3aGVyZSBjYW1lbC1jYXNlZCBhdHRyaWJ1dGUgaXMgb2J0YWluZWQgYnkg
cnVubmluZyB0aGUKICAgIC8vIENTUyBwcm9wZXJ0eSB0byBJREwgYXR0cmlidXRlIGFsZ29yaXRo
bSBmb3IgcHJvcGVydHkuCiAgICAvLyBFeGFtcGxlOiBmb250LXNpemUgLT4gZWxlbWVudC5zdHls
ZS5mb250U2l6ZQogICAgLy8gRXhhbXBsZTogLXdlYmtpdC10cmFuc2Zvcm0gLT4gZWxlbWVudC5z
dHlsZS5XZWJraXRUcmFuc2Zvcm0KICAgIC8vIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgX2NhbWVsX2Nhc2VkX2F0dHJpYnV0ZTsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QXBwbGVDb2xvckZpbHRlcl0gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgQXBwbGVDb2xvckZpbHRlcjsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QXBwbGVQYXlCdXR0b25TdHlsZV0gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgQXBwbGVQYXlCdXR0b25T
dHlsZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QXBwbGVQYXlCdXR0b25UeXBlXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBBcHBsZVBheUJ1
dHRvblR5cGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUFwcGxlVHJhaWxpbmdXb3Jk
XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBBcHBsZVRy
YWlsaW5nV29yZDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Q2FwdGlvblNpZGVdIGF0
dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIEVwdWJDYXB0aW9u
U2lkZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0SHlwaGVuc10gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgRXB1Ykh5cGhlbnM7CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdFRleHRDb21iaW5lXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBFcHViVGV4dENvbWJpbmU7CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdFRleHRFbXBoYXNpc10gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgRXB1YlRleHRFbXBoYXNpczsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0VGV4dEVtcGhhc2lzQ29sb3JdIGF0
dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIEVwdWJUZXh0RW1w
aGFzaXNDb2xvcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0VGV4dEVtcGhh
c2lzU3R5bGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IEVwdWJUZXh0RW1waGFzaXNTdHlsZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Vi
a2l0VGV4dE9yaWVudGF0aW9uXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyBFcHViVGV4dE9yaWVudGF0aW9uOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1UZXh0VHJhbnNmb3JtXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyBFcHViVGV4dFRyYW5zZm9ybTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9V29yZEJyZWFrXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyBFcHViV29yZEJyZWFrOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Xcml0aW5n
TW9kZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgRXB1
YldyaXRpbmdNb2RlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1JbnRlcm5hbFRleHRB
dXRvc2l6aW5nU3RhdHVzXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyBJbnRlcm5hbFRleHRBdXRvc2l6aW5nU3RhdHVzOwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1BbGlnbkNvbnRlbnRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIFdlYmtpdEFsaWduQ29udGVudDsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9QWxpZ25JdGVtc10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgV2Via2l0QWxpZ25JdGVtczsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9QWxpZ25TZWxmXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyBXZWJraXRBbGlnblNlbGY7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUFsdF0g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0QWx0
OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1BbmltYXRpb25dIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdEFuaW1hdGlvbjsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QW5pbWF0aW9uRGVsYXldIGF0dHJpYnV0ZSBbTGVnYWN5
TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdEFuaW1hdGlvbkRlbGF5OwogICAg
W0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1BbmltYXRpb25EaXJlY3Rpb25dIGF0dHJpYnV0ZSBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdEFuaW1hdGlvbkRpcmVj
dGlvbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QW5pbWF0aW9uRHVyYXRpb25dIGF0
dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdEFuaW1h
dGlvbkR1cmF0aW9uOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1BbmltYXRpb25GaWxs
TW9kZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Vi
a2l0QW5pbWF0aW9uRmlsbE1vZGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUFuaW1h
dGlvbkl0ZXJhdGlvbkNvdW50XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyBXZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudDsKICAgIFtDRVJlYWN0aW9u
cywgQ1NTUHJvcGVydHk9QW5pbWF0aW9uTmFtZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0QW5pbWF0aW9uTmFtZTsKICAgIFtDRVJlYWN0aW9u
cywgQ1NTUHJvcGVydHk9QW5pbWF0aW9uUGxheVN0YXRlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRBbmltYXRpb25QbGF5U3RhdGU7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uXSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRBbmltYXRpb25U
aW1pbmdGdW5jdGlvbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0QXBwZWFy
YW5jZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Vi
a2l0QXBwZWFyYW5jZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0QXNwZWN0
UmF0aW9dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdl
YmtpdEFzcGVjdFJhdGlvOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRCYWNr
ZHJvcEZpbHRlcl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgV2Via2l0QmFja2Ryb3BGaWx0ZXI7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdl
YmtpdEJhY2tmYWNlVmlzaWJpbGl0eV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgV2Via2l0QmFja2ZhY2VWaXNpYmlsaXR5OwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1XZWJraXRCYWNrZ3JvdW5kQ2xpcF0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0QmFja2dyb3VuZENsaXA7CiAgICBbQ0VS
ZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEJhY2tncm91bmRDb21wb3NpdGVdIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdEJhY2tncm91bmRD
b21wb3NpdGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEJhY2tncm91bmRP
cmlnaW5dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdl
YmtpdEJhY2tncm91bmRPcmlnaW47CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtp
dEJhY2tncm91bmRTaXplXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyBXZWJraXRCYWNrZ3JvdW5kU2l6ZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9Qm9yZGVyQmxvY2tFbmRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENT
U09NU3RyaW5nIFdlYmtpdEJvcmRlckFmdGVyOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1Cb3JkZXJCbG9ja0VuZENvbG9yXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZyBXZWJraXRCb3JkZXJBZnRlckNvbG9yOwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1Cb3JkZXJCbG9ja0VuZFN0eWxlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRCb3JkZXJBZnRlclN0eWxlOwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJCbG9ja0VuZFdpZHRoXSBhdHRyaWJ1dGUgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRCb3JkZXJBZnRlcldpZHRoOwog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJCbG9ja1N0YXJ0XSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRCb3JkZXJCZWZvcmU7
CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJvcmRlckJsb2NrU3RhcnRDb2xvcl0gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0Qm9yZGVy
QmVmb3JlQ29sb3I7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJvcmRlckJsb2NrU3Rh
cnRTdHlsZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
V2Via2l0Qm9yZGVyQmVmb3JlU3R5bGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJv
cmRlckJsb2NrU3RhcnRXaWR0aF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgV2Via2l0Qm9yZGVyQmVmb3JlV2lkdGg7CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PUJvcmRlckJvdHRvbUxlZnRSYWRpdXNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRv
RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdEJvcmRlckJvdHRvbUxlZnRSYWRpdXM7CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzXSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRCb3JkZXJC
b3R0b21SaWdodFJhZGl1czsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVySW5s
aW5lRW5kXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBX
ZWJraXRCb3JkZXJFbmQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJvcmRlcklubGlu
ZUVuZENvbG9yXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyBXZWJraXRCb3JkZXJFbmRDb2xvcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9y
ZGVySW5saW5lRW5kU3R5bGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENT
U09NU3RyaW5nIFdlYmtpdEJvcmRlckVuZFN0eWxlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1Cb3JkZXJJbmxpbmVFbmRXaWR0aF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0Qm9yZGVyRW5kV2lkdGg7CiAgICBbQ0VSZWFjdGlvbnMs
IENTU1Byb3BlcnR5PVdlYmtpdEJvcmRlckZpdF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0Qm9yZGVyRml0OwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1XZWJraXRCb3JkZXJIb3Jpem9udGFsU3BhY2luZ10gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0Qm9yZGVySG9yaXpvbnRhbFNw
YWNpbmc7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEJvcmRlckltYWdlXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRCb3Jk
ZXJJbWFnZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0Qm9yZGVyUmFkaXVz
XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRC
b3JkZXJSYWRpdXM7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJvcmRlcklubGluZVN0
YXJ0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJr
aXRCb3JkZXJTdGFydDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVySW5saW5l
U3RhcnRDb2xvcl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgV2Via2l0Qm9yZGVyU3RhcnRDb2xvcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
Qm9yZGVySW5saW5lU3RhcnRTdHlsZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgV2Via2l0Qm9yZGVyU3RhcnRTdHlsZTsKICAgIFtDRVJlYWN0aW9ucywg
Q1NTUHJvcGVydHk9Qm9yZGVySW5saW5lU3RhcnRXaWR0aF0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0Qm9yZGVyU3RhcnRXaWR0aDsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyVG9wTGVmdFJhZGl1c10gYXR0cmlidXRlIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0Qm9yZGVyVG9wTGVmdFJh
ZGl1czsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyVG9wUmlnaHRSYWRpdXNd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdEJv
cmRlclRvcFJpZ2h0UmFkaXVzOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRC
b3JkZXJWZXJ0aWNhbFNwYWNpbmddIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIFdlYmtpdEJvcmRlclZlcnRpY2FsU3BhY2luZzsKICAgIFtDRVJlYWN0aW9u
cywgQ1NTUHJvcGVydHk9V2Via2l0Qm94QWxpZ25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdEJveEFsaWduOwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1XZWJraXRCb3hEZWNvcmF0aW9uQnJlYWtdIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdEJveERlY29yYXRpb25CcmVhazsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0Qm94RGlyZWN0aW9uXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRCb3hEaXJlY3Rpb247
CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEJveEZsZXhdIGF0dHJpYnV0ZSBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdEJveEZsZXg7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEJveEZsZXhHcm91cF0gYXR0cmlidXRlIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0Qm94RmxleEdyb3VwOwog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRCb3hMaW5lc10gYXR0cmlidXRlIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0Qm94TGluZXM7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEJveE9yZGluYWxHcm91cF0gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0Qm94T3JkaW5hbEdy
b3VwOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRCb3hPcmllbnRdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdEJveE9yaWVu
dDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0Qm94UGFja10gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0Qm94UGFjazsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0Qm94UmVmbGVjdF0gYXR0cmlidXRlIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0Qm94UmVmbGVjdDsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0Qm94U2hhZG93XSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRCb3hTaGFkb3c7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJveFNpemluZ10gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0Qm94U2l6aW5nOwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1DbGlwUGF0aF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0Q2xpcFBhdGg7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PVdlYmtpdENvbHVtbkF4aXNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIFdlYmtpdENvbHVtbkF4aXM7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PVdlYmtpdENvbHVtbkJyZWFrQWZ0ZXJdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdENvbHVtbkJyZWFrQWZ0ZXI7CiAgICBbQ0VSZWFj
dGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdENvbHVtbkJyZWFrQmVmb3JlXSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRDb2x1bW5CcmVha0JlZm9y
ZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0Q29sdW1uQnJlYWtJbnNpZGVd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdENv
bHVtbkJyZWFrSW5zaWRlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Db2x1bW5Db3Vu
dF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0
Q29sdW1uQ291bnQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNvbHVtbkZpbGxdIGF0
dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdENvbHVt
bkZpbGw7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNvbHVtbkdhcF0gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0Q29sdW1uR2FwOwog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRDb2x1bW5Qcm9ncmVzc2lvbl0gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0Q29sdW1u
UHJvZ3Jlc3Npb247CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNvbHVtblJ1bGVdIGF0
dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdENvbHVt
blJ1bGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNvbHVtblJ1bGVDb2xvcl0gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0Q29sdW1u
UnVsZUNvbG9yOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Db2x1bW5SdWxlU3R5bGVd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdENv
bHVtblJ1bGVTdHlsZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Q29sdW1uUnVsZVdp
ZHRoXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJr
aXRDb2x1bW5SdWxlV2lkdGg7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNvbHVtblNw
YW5dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtp
dENvbHVtblNwYW47CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNvbHVtbldpZHRoXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRDb2x1
bW5XaWR0aDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Q29sdW1uc10gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0Q29sdW1uczsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0Q3Vyc29yVmlzaWJpbGl0eV0gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0Q3Vyc29yVmlz
aWJpbGl0eTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9RmlsdGVyXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRGaWx0ZXI7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZsZXhdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdEZsZXg7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PUZsZXhCYXNpc10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgV2Via2l0RmxleEJhc2lzOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1G
bGV4RGlyZWN0aW9uXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyBXZWJraXRGbGV4RGlyZWN0aW9uOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1G
bGV4Rmxvd10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
V2Via2l0RmxleEZsb3c7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZsZXhHcm93XSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRGbGV4
R3JvdzsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9RmxleFNocmlua10gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0RmxleFNocmluazsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9RmxleFdyYXBdIGF0dHJpYnV0ZSBbTGVnYWN5
TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdEZsZXhXcmFwOwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRGb250S2VybmluZ10gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0Rm9udEtlcm5pbmc7CiAgICBbQ0VS
ZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEZvbnRTbW9vdGhpbmddIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdEZvbnRTbW9vdGhpbmc7CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEh5cGhlbmF0ZUNoYXJhY3Rlcl0gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0SHlwaGVu
YXRlQ2hhcmFjdGVyOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRIeXBoZW5h
dGVMaW1pdEFmdGVyXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyBXZWJraXRIeXBoZW5hdGVMaW1pdEFmdGVyOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1XZWJraXRIeXBoZW5hdGVMaW1pdEJlZm9yZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0SHlwaGVuYXRlTGltaXRCZWZvcmU7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEh5cGhlbmF0ZUxpbWl0TGluZXNdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdEh5cGhlbmF0
ZUxpbWl0TGluZXM7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEh5cGhlbnNd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdEh5
cGhlbnM7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEluaXRpYWxMZXR0ZXJd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdElu
aXRpYWxMZXR0ZXI7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUp1c3RpZnlDb250ZW50
XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRK
dXN0aWZ5Q29udGVudDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9SnVzdGlmeUl0ZW1z
XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRK
dXN0aWZ5SXRlbXM7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdExpbmVBbGln
bl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0
TGluZUFsaWduOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRMaW5lQm94Q29u
dGFpbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Vi
a2l0TGluZUJveENvbnRhaW47CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUxpbmVCcmVh
a10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0
TGluZUJyZWFrOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRMaW5lQ2xhbXBd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdExp
bmVDbGFtcDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0TGluZUdyaWRdIGF0
dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdExpbmVH
cmlkOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRMaW5lU25hcF0gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0TGluZVNuYXA7
CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdExvY2FsZV0gYXR0cmlidXRlIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0TG9jYWxlOwogICAgW0NF
UmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1CbG9ja1NpemVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRv
RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdExvZ2ljYWxIZWlnaHQ7CiAgICBbQ0VSZWFj
dGlvbnMsIENTU1Byb3BlcnR5PUlubGluZVNpemVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdExvZ2ljYWxXaWR0aDsKICAgIFtDRVJlYWN0aW9u
cywgQ1NTUHJvcGVydHk9TWFyZ2luQmxvY2tFbmRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdE1hcmdpbkFmdGVyOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1XZWJraXRNYXJnaW5BZnRlckNvbGxhcHNlXSBhdHRyaWJ1dGUgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRNYXJnaW5BZnRlckNvbGxhcHNl
OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1NYXJnaW5CbG9ja1N0YXJ0XSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRNYXJnaW5CZWZv
cmU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdE1hcmdpbkJlZm9yZUNvbGxh
cHNlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJr
aXRNYXJnaW5CZWZvcmVDb2xsYXBzZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Vi
a2l0TWFyZ2luQm90dG9tQ29sbGFwc2VdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIFdlYmtpdE1hcmdpbkJvdHRvbUNvbGxhcHNlOwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1XZWJraXRNYXJnaW5Db2xsYXBzZV0gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0TWFyZ2luQ29sbGFwc2U7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PU1hcmdpbklubGluZUVuZF0gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0TWFyZ2luRW5kOwogICAgW0NF
UmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1NYXJnaW5JbmxpbmVTdGFydF0gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0TWFyZ2luU3RhcnQ7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdE1hcmdpblRvcENvbGxhcHNlXSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRNYXJnaW5Ub3BD
b2xsYXBzZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0TWFza10gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0TWFzazsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0TWFza0JveEltYWdlXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRNYXNrQm94SW1hZ2U7
CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdE1hc2tCb3hJbWFnZU91dHNldF0g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0TWFz
a0JveEltYWdlT3V0c2V0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRNYXNr
Qm94SW1hZ2VSZXBlYXRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIFdlYmtpdE1hc2tCb3hJbWFnZVJlcGVhdDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9V2Via2l0TWFza0JveEltYWdlU2xpY2VdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdE1hc2tCb3hJbWFnZVNsaWNlOwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRNYXNrQm94SW1hZ2VTb3VyY2VdIGF0dHJpYnV0ZSBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdE1hc2tCb3hJbWFnZVNv
dXJjZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0TWFza0JveEltYWdlV2lk
dGhdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtp
dE1hc2tCb3hJbWFnZVdpZHRoOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRN
YXNrQ2xpcF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
V2Via2l0TWFza0NsaXA7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdE1hc2tD
b21wb3NpdGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IFdlYmtpdE1hc2tDb21wb3NpdGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtp
dE1hc2tJbWFnZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgV2Via2l0TWFza0ltYWdlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRN
YXNrT3JpZ2luXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyBXZWJraXRNYXNrT3JpZ2luOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRN
YXNrUG9zaXRpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3Ry
aW5nIFdlYmtpdE1hc2tQb3NpdGlvbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Vi
a2l0TWFza1Bvc2l0aW9uWF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgV2Via2l0TWFza1Bvc2l0aW9uWDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9V2Via2l0TWFza1Bvc2l0aW9uWV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgV2Via2l0TWFza1Bvc2l0aW9uWTsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9V2Via2l0TWFza1JlcGVhdF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0TWFza1JlcGVhdDsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9V2Via2l0TWFza1NpemVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIFdlYmtpdE1hc2tTaXplOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1XZWJraXRNYXNrU291cmNlVHlwZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0TWFza1NvdXJjZVR5cGU7CiAgICBbQ0VSZWFjdGlvbnMs
IENTU1Byb3BlcnR5PU1heEJsb2NrU2l6ZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0TWF4TG9naWNhbEhlaWdodDsKICAgIFtDRVJlYWN0aW9u
cywgQ1NTUHJvcGVydHk9TWF4SW5saW5lU2l6ZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0TWF4TG9naWNhbFdpZHRoOwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1NaW5CbG9ja1NpemVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdE1pbkxvZ2ljYWxIZWlnaHQ7CiAgICBbQ0VSZWFj
dGlvbnMsIENTU1Byb3BlcnR5PU1pbklubGluZVNpemVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRv
RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdE1pbkxvZ2ljYWxXaWR0aDsKICAgIFtDRVJl
YWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0TmJzcE1vZGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdE5ic3BNb2RlOwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1PcGFjaXR5XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyBXZWJraXRPcGFjaXR5OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1PcmRlcl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgV2Via2l0T3JkZXI7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVBhZGRpbmdCbG9j
a0VuZF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Vi
a2l0UGFkZGluZ0FmdGVyOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1QYWRkaW5nQmxv
Y2tTdGFydF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
V2Via2l0UGFkZGluZ0JlZm9yZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9UGFkZGlu
Z0lubGluZUVuZF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgV2Via2l0UGFkZGluZ0VuZDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9UGFkZGlu
Z0lubGluZVN0YXJ0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyBXZWJraXRQYWRkaW5nU3RhcnQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVBl
cnNwZWN0aXZlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyBXZWJraXRQZXJzcGVjdGl2ZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9UGVyc3Bl
Y3RpdmVPcmlnaW5dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3Ry
aW5nIFdlYmtpdFBlcnNwZWN0aXZlT3JpZ2luOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1QZXJzcGVjdGl2ZU9yaWdpblhdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIFdlYmtpdFBlcnNwZWN0aXZlT3JpZ2luWDsKICAgIFtDRVJlYWN0aW9ucywg
Q1NTUHJvcGVydHk9UGVyc3BlY3RpdmVPcmlnaW5ZXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRQZXJzcGVjdGl2ZU9yaWdpblk7CiAgICBbQ0VS
ZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdFByaW50Q29sb3JBZGp1c3RdIGF0dHJpYnV0ZSBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdFByaW50Q29sb3JBZGp1
c3Q7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdFJ0bE9yZGVyaW5nXSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRSdGxPcmRl
cmluZzsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0UnVieVBvc2l0aW9uXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRSdWJ5
UG9zaXRpb247CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVNoYXBlSW1hZ2VUaHJlc2hv
bGRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtp
dFNoYXBlSW1hZ2VUaHJlc2hvbGQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVNoYXBl
TWFyZ2luXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBX
ZWJraXRTaGFwZU1hcmdpbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9U2hhcGVPdXRz
aWRlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJr
aXRTaGFwZU91dHNpZGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdFRleHRD
b21iaW5lXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBX
ZWJraXRUZXh0Q29tYmluZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0VGV4
dERlY29yYXRpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3Ry
aW5nIFdlYmtpdFRleHREZWNvcmF0aW9uOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1U
ZXh0RGVjb3JhdGlvbkNvbG9yXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyBXZWJraXRUZXh0RGVjb3JhdGlvbkNvbG9yOwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1UZXh0RGVjb3JhdGlvbkxpbmVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdFRleHREZWNvcmF0aW9uTGluZTsKICAgIFtDRVJl
YWN0aW9ucywgQ1NTUHJvcGVydHk9VGV4dERlY29yYXRpb25Ta2lwXSBhdHRyaWJ1dGUgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRUZXh0RGVjb3JhdGlvblNraXA7
CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRleHREZWNvcmF0aW9uU3R5bGVdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdFRleHREZWNv
cmF0aW9uU3R5bGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdFRleHREZWNv
cmF0aW9uc0luRWZmZWN0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyBXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVjdDsKICAgIFtDRVJlYWN0aW9ucywg
Q1NTUHJvcGVydHk9V2Via2l0VGV4dEVtcGhhc2lzXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRUZXh0RW1waGFzaXM7CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PVdlYmtpdFRleHRFbXBoYXNpc0NvbG9yXSBhdHRyaWJ1dGUgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRUZXh0RW1waGFzaXNDb2xvcjsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0VGV4dEVtcGhhc2lzUG9zaXRpb25d
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdFRl
eHRFbXBoYXNpc1Bvc2l0aW9uOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRU
ZXh0RW1waGFzaXNTdHlsZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgV2Via2l0VGV4dEVtcGhhc2lzU3R5bGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PVdlYmtpdFRleHRGaWxsQ29sb3JdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlT
dHJpbmddIENTU09NU3RyaW5nIFdlYmtpdFRleHRGaWxsQ29sb3I7CiAgICBbQ0VSZWFjdGlvbnMs
IENTU1Byb3BlcnR5PVdlYmtpdFRleHRPcmllbnRhdGlvbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0VGV4dE9yaWVudGF0aW9uOwogICAgW0NF
UmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRUZXh0U2VjdXJpdHldIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdFRleHRTZWN1cml0eTsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0VGV4dFNpemVBZGp1c3RdIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdFRleHRTaXplQWRq
dXN0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRUZXh0U3Ryb2tlXSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRUZXh0U3Ry
b2tlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRUZXh0U3Ryb2tlQ29sb3Jd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdFRl
eHRTdHJva2VDb2xvcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0VGV4dFN0
cm9rZVdpZHRoXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyBXZWJraXRUZXh0U3Ryb2tlV2lkdGg7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRl
eHRVbmRlcmxpbmVQb3NpdGlvbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgV2Via2l0VGV4dFVuZGVybGluZVBvc2l0aW9uOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1XZWJraXRUZXh0Wm9vbV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0VGV4dFpvb207CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PVRyYW5zZm9ybV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgV2Via2l0VHJhbnNmb3JtOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1UcmFuc2Zvcm1PcmlnaW5dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENT
U09NU3RyaW5nIFdlYmtpdFRyYW5zZm9ybU9yaWdpbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9VHJhbnNmb3JtT3JpZ2luWF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgV2Via2l0VHJhbnNmb3JtT3JpZ2luWDsKICAgIFtDRVJlYWN0aW9ucywg
Q1NTUHJvcGVydHk9VHJhbnNmb3JtT3JpZ2luWV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0VHJhbnNmb3JtT3JpZ2luWTsKICAgIFtDRVJlYWN0
aW9ucywgQ1NTUHJvcGVydHk9VHJhbnNmb3JtT3JpZ2luWl0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0VHJhbnNmb3JtT3JpZ2luWjsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0VHJhbnNmb3JtU3R5bGVdIGF0dHJpYnV0ZSBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdFRyYW5zZm9ybVN0eWxl
OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1UcmFuc2l0aW9uXSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRUcmFuc2l0aW9uOwogICAg
W0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1UcmFuc2l0aW9uRGVsYXldIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdFRyYW5zaXRpb25EZWxheTsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9VHJhbnNpdGlvbkR1cmF0aW9uXSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRUcmFuc2l0aW9u
RHVyYXRpb247CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRyYW5zaXRpb25Qcm9wZXJ0
eV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgV2Via2l0
VHJhbnNpdGlvblByb3BlcnR5OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1UcmFuc2l0
aW9uVGltaW5nRnVuY3Rpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENT
U09NU3RyaW5nIFdlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjsKICAgIFtDRVJlYWN0aW9u
cywgQ1NTUHJvcGVydHk9V2Via2l0VXNlckRyYWddIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIFdlYmtpdFVzZXJEcmFnOwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1XZWJraXRVc2VyTW9kaWZ5XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRVc2VyTW9kaWZ5OwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1XZWJraXRVc2VyU2VsZWN0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyBXZWJraXRVc2VyU2VsZWN0OwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1Xcml0aW5nTW9kZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgV2Via2l0V3JpdGluZ01vZGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PUFsaWduQ29udGVudF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgYWxpZ25Db250ZW50OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1B
bGlnbkl0ZW1zXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyBhbGlnbkl0ZW1zOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1BbGlnblNlbGZdIGF0
dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGFsaWduU2VsZjsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QWxpZ25tZW50QmFzZWxpbmVdIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGFsaWdubWVudEJhc2VsaW5l
OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1BbGxdIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGFsbDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9QWx0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyBhbHQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUFuaW1hdGlvbl0gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYW5pbWF0aW9uOwogICAgW0NF
UmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1BbmltYXRpb25EZWxheV0gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYW5pbWF0aW9uRGVsYXk7CiAgICBbQ0VSZWFj
dGlvbnMsIENTU1Byb3BlcnR5PUFuaW1hdGlvbkRpcmVjdGlvbl0gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYW5pbWF0aW9uRGlyZWN0aW9uOwogICAgW0NF
UmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1BbmltYXRpb25EdXJhdGlvbl0gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYW5pbWF0aW9uRHVyYXRpb247CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUFuaW1hdGlvbkZpbGxNb2RlXSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBhbmltYXRpb25GaWxsTW9kZTsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QW5pbWF0aW9uSXRlcmF0aW9uQ291bnRdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGFuaW1hdGlvbkl0ZXJh
dGlvbkNvdW50OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1BbmltYXRpb25OYW1lXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBhbmltYXRpb25O
YW1lOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1BbmltYXRpb25QbGF5U3RhdGVdIGF0
dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGFuaW1hdGlvblBs
YXlTdGF0ZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QW5pbWF0aW9uVGltaW5nRnVu
Y3Rpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGFu
aW1hdGlvblRpbWluZ0Z1bmN0aW9uOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1CYWNr
Z3JvdW5kXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBi
YWNrZ3JvdW5kOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1CYWNrZ3JvdW5kQXR0YWNo
bWVudF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYmFj
a2dyb3VuZEF0dGFjaG1lbnQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJhY2tncm91
bmRCbGVuZE1vZGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3Ry
aW5nIGJhY2tncm91bmRCbGVuZE1vZGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJh
Y2tncm91bmRDbGlwXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyBiYWNrZ3JvdW5kQ2xpcDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QmFja2dy
b3VuZENvbG9yXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyBiYWNrZ3JvdW5kQ29sb3I7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJhY2tncm91
bmRJbWFnZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
YmFja2dyb3VuZEltYWdlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1CYWNrZ3JvdW5k
T3JpZ2luXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBi
YWNrZ3JvdW5kT3JpZ2luOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1CYWNrZ3JvdW5k
UG9zaXRpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IGJhY2tncm91bmRQb3NpdGlvbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QmFja2dy
b3VuZFBvc2l0aW9uWF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01T
dHJpbmcgYmFja2dyb3VuZFBvc2l0aW9uWDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
QmFja2dyb3VuZFBvc2l0aW9uWV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgYmFja2dyb3VuZFBvc2l0aW9uWTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9QmFja2dyb3VuZFJlcGVhdF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgYmFja2dyb3VuZFJlcGVhdDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9QmFja2dyb3VuZFNpemVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIGJhY2tncm91bmRTaXplOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1CYXNlbGluZVNoaWZ0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyBiYXNlbGluZVNoaWZ0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1CbG9j
a1NpemVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGJs
b2NrU2l6ZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXI7CiAgICBbQ0VSZWFj
dGlvbnMsIENTU1Byb3BlcnR5PUJvcmRlckJsb2NrXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXJCbG9jazsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9Qm9yZGVyQmxvY2tDb2xvcl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyQmxvY2tDb2xvcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9Qm9yZGVyQmxvY2tFbmRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIGJvcmRlckJsb2NrRW5kOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1Cb3JkZXJCbG9ja0VuZENvbG9yXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyBib3JkZXJCbG9ja0VuZENvbG9yOwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1Cb3JkZXJCbG9ja0VuZFN0eWxlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXJCbG9ja0VuZFN0eWxlOwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJCbG9ja0VuZFdpZHRoXSBhdHRyaWJ1dGUgW0xlZ2FjeU51
bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXJCbG9ja0VuZFdpZHRoOwogICAgW0NF
UmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJCbG9ja1N0YXJ0XSBhdHRyaWJ1dGUgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXJCbG9ja1N0YXJ0OwogICAgW0NF
UmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJCbG9ja1N0YXJ0Q29sb3JdIGF0dHJpYnV0ZSBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGJvcmRlckJsb2NrU3RhcnRDb2xv
cjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyQmxvY2tTdGFydFN0eWxlXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXJCbG9j
a1N0YXJ0U3R5bGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJvcmRlckJsb2NrU3Rh
cnRXaWR0aF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
Ym9yZGVyQmxvY2tTdGFydFdpZHRoOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3Jk
ZXJCbG9ja1N0eWxlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyBib3JkZXJCbG9ja1N0eWxlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3Jk
ZXJCbG9ja1dpZHRoXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyBib3JkZXJCbG9ja1dpZHRoOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3Jk
ZXJCb3R0b21dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IGJvcmRlckJvdHRvbTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyQm90dG9t
Q29sb3JdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGJv
cmRlckJvdHRvbUNvbG9yOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJCb3R0
b21MZWZ0UmFkaXVzXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyBib3JkZXJCb3R0b21MZWZ0UmFkaXVzOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1Cb3JkZXJCb3R0b21SaWdodFJhZGl1c10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM7CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PUJvcmRlckJvdHRvbVN0eWxlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXJCb3R0b21TdHlsZTsKICAgIFtDRVJlYWN0
aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyQm90dG9tV2lkdGhdIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGJvcmRlckJvdHRvbVdpZHRoOwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJDb2xsYXBzZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyQ29sbGFwc2U7CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PUJvcmRlckNvbG9yXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXJDb2xvcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9Qm9yZGVySW1hZ2VdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENT
U09NU3RyaW5nIGJvcmRlckltYWdlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3Jk
ZXJJbWFnZU91dHNldF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01T
dHJpbmcgYm9yZGVySW1hZ2VPdXRzZXQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJv
cmRlckltYWdlUmVwZWF0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyBib3JkZXJJbWFnZVJlcGVhdDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
Qm9yZGVySW1hZ2VTbGljZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgYm9yZGVySW1hZ2VTbGljZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
Qm9yZGVySW1hZ2VTb3VyY2VdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENT
U09NU3RyaW5nIGJvcmRlckltYWdlU291cmNlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1Cb3JkZXJJbWFnZVdpZHRoXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyBib3JkZXJJbWFnZVdpZHRoOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1Cb3JkZXJJbmxpbmVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIGJvcmRlcklubGluZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVy
SW5saW5lQ29sb3JdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3Ry
aW5nIGJvcmRlcklubGluZUNvbG9yOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3Jk
ZXJJbmxpbmVFbmRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3Ry
aW5nIGJvcmRlcklubGluZUVuZDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVy
SW5saW5lRW5kQ29sb3JdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIGJvcmRlcklubGluZUVuZENvbG9yOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1Cb3JkZXJJbmxpbmVFbmRTdHlsZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgYm9yZGVySW5saW5lRW5kU3R5bGU7CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PUJvcmRlcklubGluZUVuZFdpZHRoXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXJJbmxpbmVFbmRXaWR0aDsKICAgIFtDRVJlYWN0
aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVySW5saW5lU3RhcnRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGJvcmRlcklubGluZVN0YXJ0OwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJJbmxpbmVTdGFydENvbG9yXSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXJJbmxpbmVTdGFydENvbG9y
OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJJbmxpbmVTdGFydFN0eWxlXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXJJbmxp
bmVTdGFydFN0eWxlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJJbmxpbmVT
dGFydFdpZHRoXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyBib3JkZXJJbmxpbmVTdGFydFdpZHRoOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1C
b3JkZXJJbmxpbmVTdHlsZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgYm9yZGVySW5saW5lU3R5bGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5
PUJvcmRlcklubGluZVdpZHRoXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyBib3JkZXJJbmxpbmVXaWR0aDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9Qm9yZGVyTGVmdF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01T
dHJpbmcgYm9yZGVyTGVmdDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyTGVm
dENvbG9yXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBi
b3JkZXJMZWZ0Q29sb3I7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJvcmRlckxlZnRT
dHlsZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYm9y
ZGVyTGVmdFN0eWxlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJMZWZ0V2lk
dGhdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGJvcmRl
ckxlZnRXaWR0aDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyUmFkaXVzXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXJSYWRp
dXM7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJvcmRlclJpZ2h0XSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXJSaWdodDsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyUmlnaHRDb2xvcl0gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyUmlnaHRDb2xvcjsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyUmlnaHRTdHlsZV0gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyUmlnaHRTdHlsZTsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyUmlnaHRXaWR0aF0gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyUmlnaHRXaWR0aDsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyU3BhY2luZ10gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyU3BhY2luZzsKICAgIFtDRVJlYWN0
aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyU3R5bGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIGJvcmRlclN0eWxlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQ
cm9wZXJ0eT1Cb3JkZXJUb3BdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENT
U09NU3RyaW5nIGJvcmRlclRvcDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVy
VG9wQ29sb3JdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IGJvcmRlclRvcENvbG9yOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJUb3BM
ZWZ0UmFkaXVzXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyBib3JkZXJUb3BMZWZ0UmFkaXVzOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3Jk
ZXJUb3BSaWdodFJhZGl1c10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgYm9yZGVyVG9wUmlnaHRSYWRpdXM7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3Bl
cnR5PUJvcmRlclRvcFN0eWxlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyBib3JkZXJUb3BTdHlsZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
Qm9yZGVyVG9wV2lkdGhdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIGJvcmRlclRvcFdpZHRoOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3Jk
ZXJXaWR0aF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
Ym9yZGVyV2lkdGg7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJvdHRvbV0gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYm90dG9tOwogICAgW0NF
UmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3hTaGFkb3ddIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRv
RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGJveFNoYWRvdzsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9Qm94U2l6aW5nXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyBib3hTaXppbmc7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJyZWFr
QWZ0ZXJdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGJy
ZWFrQWZ0ZXI7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJyZWFrQmVmb3JlXSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBicmVha0JlZm9yZTsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QnJlYWtJbnNpZGVdIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGJyZWFrSW5zaWRlOwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1CdWZmZXJlZFJlbmRlcmluZ10gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYnVmZmVyZWRSZW5kZXJpbmc7CiAgICBbQ0VS
ZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNhcHRpb25TaWRlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBjYXB0aW9uU2lkZTsKICAgIFtDRVJlYWN0aW9ucywg
Q1NTUHJvcGVydHk9Q2FyZXRDb2xvcl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgY2FyZXRDb2xvcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
Q2xlYXJdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGNs
ZWFyOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1DbGlwXSBhdHRyaWJ1dGUgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBjbGlwOwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1DbGlwUGF0aF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgY2xpcFBhdGg7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNsaXBS
dWxlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBjbGlw
UnVsZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Q29sb3JdIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGNvbG9yOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1Db2xvckludGVycG9sYXRpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRv
RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGNvbG9ySW50ZXJwb2xhdGlvbjsKICAgIFtDRVJlYWN0
aW9ucywgQ1NTUHJvcGVydHk9Q29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyc10gYXR0cmlidXRlIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgY29sb3JJbnRlcnBvbGF0aW9uRmls
dGVyczsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Q29sb3JQcm9maWxlXSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBjb2xvclByb2ZpbGU7CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNvbG9yUmVuZGVyaW5nXSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBjb2xvclJlbmRlcmluZzsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Q29sb3JTY2hlbWVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGNvbG9yU2NoZW1lOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1Db2x1bW5Db3VudF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgY29sdW1uQ291bnQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3Bl
cnR5PUNvbHVtbkZpbGxdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIGNvbHVtbkZpbGw7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNvbHVtbkdh
cF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgY29sdW1u
R2FwOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Db2x1bW5SdWxlXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBjb2x1bW5SdWxlOwogICAgW0NF
UmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Db2x1bW5SdWxlQ29sb3JdIGF0dHJpYnV0ZSBbTGVnYWN5
TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGNvbHVtblJ1bGVDb2xvcjsKICAgIFtDRVJl
YWN0aW9ucywgQ1NTUHJvcGVydHk9Q29sdW1uUnVsZVN0eWxlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51
bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBjb2x1bW5SdWxlU3R5bGU7CiAgICBbQ0VSZWFj
dGlvbnMsIENTU1Byb3BlcnR5PUNvbHVtblJ1bGVXaWR0aF0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgY29sdW1uUnVsZVdpZHRoOwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1Db2x1bW5TcGFuXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyBjb2x1bW5TcGFuOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1Db2x1bW5XaWR0aF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgY29sdW1uV2lkdGg7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNvbHVt
bnNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGNvbHVt
bnM7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNvbnRlbnRdIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGNvbnRlbnQ7CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PUNvdW50ZXJJbmNyZW1lbnRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRv
RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGNvdW50ZXJJbmNyZW1lbnQ7CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PUNvdW50ZXJSZXNldF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gQ1NTT01TdHJpbmcgY291bnRlclJlc2V0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQ
cm9wZXJ0eT1DdXJzb3JdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIGN1cnNvcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Q3hdIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGN4OwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1DeV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgY3k7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PURpcmVjdGlvbl0g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZGlyZWN0aW9u
OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1EaXNwbGF5XSBhdHRyaWJ1dGUgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBkaXNwbGF5OwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1Eb21pbmFudEJhc2VsaW5lXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyBkb21pbmFudEJhc2VsaW5lOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1FbXB0eUNlbGxzXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyBlbXB0eUNlbGxzOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1FbmFibGVCYWNrZ3JvdW5kXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyBlbmFibGVCYWNrZ3JvdW5kOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1GaWxsXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBm
aWxsOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1GaWxsT3BhY2l0eV0gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZmlsbE9wYWNpdHk7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZpbGxSdWxlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBmaWxsUnVsZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9RmlsdGVyXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyBmaWx0ZXI7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZsZXhdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGZsZXg7CiAgICBbQ0VS
ZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZsZXhCYXNpc10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZmxleEJhc2lzOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQ
cm9wZXJ0eT1GbGV4RGlyZWN0aW9uXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZyBmbGV4RGlyZWN0aW9uOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1GbGV4Rmxvd10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgZmxleEZsb3c7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZsZXhHcm93XSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBmbGV4R3JvdzsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9RmxleFNocmlua10gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZmxleFNocmluazsKICAgIFtDRVJlYWN0aW9u
cywgQ1NTUHJvcGVydHk9RmxleFdyYXBdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIGZsZXhXcmFwOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1G
bG9hdF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZmxv
YXQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZsb29kQ29sb3JdIGF0dHJpYnV0ZSBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGZsb29kQ29sb3I7CiAgICBbQ0VS
ZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZsb29kT3BhY2l0eV0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZmxvb2RPcGFjaXR5OwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1Gb250XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyBmb250OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Gb250RGlzcGxh
eV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZm9udERp
c3BsYXk7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZvbnRGYW1pbHldIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGZvbnRGYW1pbHk7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZvbnRGZWF0dXJlU2V0dGluZ3NdIGF0dHJpYnV0ZSBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGZvbnRGZWF0dXJlU2V0dGluZ3M7
CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEZvbnRLZXJuaW5nXSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBmb250S2VybmluZzsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Rm9udE9wdGljYWxTaXppbmddIGF0dHJpYnV0ZSBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGZvbnRPcHRpY2FsU2l6aW5nOwog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Gb250U2l6ZV0gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZm9udFNpemU7CiAgICBbQ0VSZWFjdGlvbnMs
IENTU1Byb3BlcnR5PUZvbnRTdHJldGNoXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyBmb250U3RyZXRjaDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9Rm9udFN0eWxlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyBmb250U3R5bGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZvbnRTeW50aGVz
aXNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGZvbnRT
eW50aGVzaXM7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZvbnRWYXJpYW50XSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBmb250VmFyaWFudDsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Rm9udFZhcmlhbnRBbHRlcm5hdGVzXSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBmb250VmFyaWFudEFs
dGVybmF0ZXM7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZvbnRWYXJpYW50Q2Fwc10g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZm9udFZhcmlh
bnRDYXBzOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Gb250VmFyaWFudEVhc3RBc2lh
bl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZm9udFZh
cmlhbnRFYXN0QXNpYW47CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZvbnRWYXJpYW50
TGlnYXR1cmVzXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyBmb250VmFyaWFudExpZ2F0dXJlczsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Rm9u
dFZhcmlhbnROdW1lcmljXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyBmb250VmFyaWFudE51bWVyaWM7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5
PUZvbnRWYXJpYW50UG9zaXRpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIGZvbnRWYXJpYW50UG9zaXRpb247CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PUZvbnRWYXJpYXRpb25TZXR0aW5nc10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gQ1NTT01TdHJpbmcgZm9udFZhcmlhdGlvblNldHRpbmdzOwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1Gb250V2VpZ2h0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyBmb250V2VpZ2h0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1HYXBdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IGdhcDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9R2x5cGhPcmllbnRhdGlvbkhvcml6
b250YWxdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGds
eXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1H
bHlwaE9yaWVudGF0aW9uVmVydGljYWxdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIGdseXBoT3JpZW50YXRpb25WZXJ0aWNhbDsKICAgIFtDRVJlYWN0aW9u
cywgQ1NTUHJvcGVydHk9R3JpZF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgZ3JpZDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9R3JpZEFyZWFd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGdyaWRBcmVh
OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1HcmlkQXV0b0NvbHVtbnNdIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGdyaWRBdXRvQ29sdW1uczsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9R3JpZEF1dG9GbG93XSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBncmlkQXV0b0Zsb3c7CiAgICBbQ0VS
ZWFjdGlvbnMsIENTU1Byb3BlcnR5PUdyaWRBdXRvUm93c10gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZ3JpZEF1dG9Sb3dzOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1HcmlkQ29sdW1uXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyBncmlkQ29sdW1uOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1HcmlkQ29sdW1uRW5kXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyBncmlkQ29sdW1uRW5kOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Db2x1
bW5HYXBdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGdy
aWRDb2x1bW5HYXA7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUdyaWRDb2x1bW5TdGFy
dF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZ3JpZENv
bHVtblN0YXJ0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1HYXBdIGF0dHJpYnV0ZSBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGdyaWRHYXA7CiAgICBbQ0VSZWFj
dGlvbnMsIENTU1Byb3BlcnR5PUdyaWRSb3ddIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlT
dHJpbmddIENTU09NU3RyaW5nIGdyaWRSb3c7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5
PUdyaWRSb3dFbmRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3Ry
aW5nIGdyaWRSb3dFbmQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVJvd0dhcF0gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZ3JpZFJvd0dhcDsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9R3JpZFJvd1N0YXJ0XSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBncmlkUm93U3RhcnQ7CiAgICBbQ0VS
ZWFjdGlvbnMsIENTU1Byb3BlcnR5PUdyaWRUZW1wbGF0ZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZ3JpZFRlbXBsYXRlOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1HcmlkVGVtcGxhdGVBcmVhc10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZ3JpZFRlbXBsYXRlQXJlYXM7CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PUdyaWRUZW1wbGF0ZUNvbHVtbnNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGdyaWRUZW1wbGF0ZUNvbHVtbnM7CiAgICBbQ0VS
ZWFjdGlvbnMsIENTU1Byb3BlcnR5PUdyaWRUZW1wbGF0ZVJvd3NdIGF0dHJpYnV0ZSBbTGVnYWN5
TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGdyaWRUZW1wbGF0ZVJvd3M7CiAgICBbQ0VS
ZWFjdGlvbnMsIENTU1Byb3BlcnR5PUhhbmdpbmdQdW5jdHVhdGlvbl0gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgaGFuZ2luZ1B1bmN0dWF0aW9uOwogICAg
W0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1IZWlnaHRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRv
RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGhlaWdodDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9SW1hZ2VPcmllbnRhdGlvbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgaW1hZ2VPcmllbnRhdGlvbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9SW1hZ2VSZW5kZXJpbmddIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIGltYWdlUmVuZGVyaW5nOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1JbmxpbmVTaXplXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyBpbmxpbmVTaXplOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1JbnNldF0gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgaW5zZXQ7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUluc2V0QmxvY2tdIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGluc2V0QmxvY2s7CiAgICBbQ0VSZWFjdGlvbnMs
IENTU1Byb3BlcnR5PUluc2V0QmxvY2tFbmRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlT
dHJpbmddIENTU09NU3RyaW5nIGluc2V0QmxvY2tFbmQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PUluc2V0QmxvY2tTdGFydF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgaW5zZXRCbG9ja1N0YXJ0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1JbnNldElubGluZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgaW5zZXRJbmxpbmU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUluc2V0
SW5saW5lRW5kXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyBpbnNldElubGluZUVuZDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9SW5zZXRJbmxp
bmVTdGFydF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
aW5zZXRJbmxpbmVTdGFydDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9SXNvbGF0aW9u
XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBpc29sYXRp
b247CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUp1c3RpZnlDb250ZW50XSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBqdXN0aWZ5Q29udGVudDsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9SnVzdGlmeUl0ZW1zXSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBqdXN0aWZ5SXRlbXM7CiAgICBbQ0VS
ZWFjdGlvbnMsIENTU1Byb3BlcnR5PUp1c3RpZnlTZWxmXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBqdXN0aWZ5U2VsZjsKICAgIFtDRVJlYWN0aW9ucywg
Q1NTUHJvcGVydHk9S2VybmluZ10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcga2VybmluZzsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9TGVmdF0g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbGVmdDsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9TGV0dGVyU3BhY2luZ10gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbGV0dGVyU3BhY2luZzsKICAgIFtDRVJl
YWN0aW9ucywgQ1NTUHJvcGVydHk9TGlnaHRpbmdDb2xvcl0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbGlnaHRpbmdDb2xvcjsKICAgIFtDRVJlYWN0aW9u
cywgQ1NTUHJvcGVydHk9TGluZUJyZWFrXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyBsaW5lQnJlYWs7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5
PUxpbmVIZWlnaHRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3Ry
aW5nIGxpbmVIZWlnaHQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUxpc3RTdHlsZV0g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbGlzdFN0eWxl
OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1MaXN0U3R5bGVJbWFnZV0gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbGlzdFN0eWxlSW1hZ2U7CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUxpc3RTdHlsZVBvc2l0aW9uXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBsaXN0U3R5bGVQb3NpdGlvbjsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9TGlzdFN0eWxlVHlwZV0gYXR0cmlidXRlIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbGlzdFN0eWxlVHlwZTsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9TWFyZ2luXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyBtYXJnaW47CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3Bl
cnR5PU1hcmdpbkJsb2NrXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyBtYXJnaW5CbG9jazsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9TWFyZ2lu
QmxvY2tFbmRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IG1hcmdpbkJsb2NrRW5kOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1NYXJnaW5CbG9j
a1N0YXJ0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBt
YXJnaW5CbG9ja1N0YXJ0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1NYXJnaW5Cb3R0
b21dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIG1hcmdp
bkJvdHRvbTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9TWFyZ2luSW5saW5lXSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBtYXJnaW5JbmxpbmU7
CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PU1hcmdpbklubGluZUVuZF0gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbWFyZ2luSW5saW5lRW5kOwog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1NYXJnaW5JbmxpbmVTdGFydF0gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbWFyZ2luSW5saW5lU3RhcnQ7
CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PU1hcmdpbkxlZnRdIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIG1hcmdpbkxlZnQ7CiAgICBbQ0VSZWFj
dGlvbnMsIENTU1Byb3BlcnR5PU1hcmdpblJpZ2h0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyBtYXJnaW5SaWdodDsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9TWFyZ2luVG9wXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyBtYXJnaW5Ub3A7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PU1hcmtl
cl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbWFya2Vy
OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1NYXJrZXJFbmRdIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIG1hcmtlckVuZDsKICAgIFtDRVJlYWN0
aW9ucywgQ1NTUHJvcGVydHk9TWFya2VyTWlkXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyBtYXJrZXJNaWQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3Bl
cnR5PU1hcmtlclN0YXJ0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyBtYXJrZXJTdGFydDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9TWFza10g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbWFzazsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9TWFza1R5cGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIG1hc2tUeXBlOwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1NYXRoU3R5bGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIG1hdGhTdHlsZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9TWF4
QmxvY2tTaXplXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyBtYXhCbG9ja1NpemU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PU1heEhlaWdodF0g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbWF4SGVpZ2h0
OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1NYXhJbmxpbmVTaXplXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBtYXhJbmxpbmVTaXplOwogICAg
W0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1NYXhXaWR0aF0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbWF4V2lkdGg7CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PU1pbkJsb2NrU2l6ZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgbWluQmxvY2tTaXplOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1NaW5IZWlnaHRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3Ry
aW5nIG1pbkhlaWdodDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9TWluSW5saW5lU2l6
ZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbWluSW5s
aW5lU2l6ZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9TWluV2lkdGhdIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIG1pbldpZHRoOwogICAgW0NF
UmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1NaXhCbGVuZE1vZGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIG1peEJsZW5kTW9kZTsKICAgIFtDRVJlYWN0aW9u
cywgQ1NTUHJvcGVydHk9T2JqZWN0Rml0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyBvYmplY3RGaXQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5
PU9iamVjdFBvc2l0aW9uXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyBvYmplY3RQb3NpdGlvbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9T3Bh
Y2l0eV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgb3Bh
Y2l0eTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9T3JkZXJdIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIG9yZGVyOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1PcnBoYW5zXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZyBvcnBoYW5zOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1PdXRs
aW5lXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBvdXRs
aW5lOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1PdXRsaW5lQ29sb3JdIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIG91dGxpbmVDb2xvcjsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9T3V0bGluZU9mZnNldF0gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgb3V0bGluZU9mZnNldDsKICAgIFtDRVJl
YWN0aW9ucywgQ1NTUHJvcGVydHk9T3V0bGluZVN0eWxlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBvdXRsaW5lU3R5bGU7CiAgICBbQ0VSZWFjdGlvbnMs
IENTU1Byb3BlcnR5PU91dGxpbmVXaWR0aF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgb3V0bGluZVdpZHRoOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1PdmVyZmxvd10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01T
dHJpbmcgb3ZlcmZsb3c7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PU92ZXJmbG93V3Jh
cF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgb3ZlcmZs
b3dXcmFwOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1PdmVyZmxvd1hdIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIG92ZXJmbG93WDsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9T3ZlcmZsb3dZXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBvdmVyZmxvd1k7CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PVBhZGRpbmddIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENT
U09NU3RyaW5nIHBhZGRpbmc7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVBhZGRpbmdC
bG9ja10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgcGFk
ZGluZ0Jsb2NrOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1QYWRkaW5nQmxvY2tFbmRd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHBhZGRpbmdC
bG9ja0VuZDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9UGFkZGluZ0Jsb2NrU3RhcnRd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHBhZGRpbmdC
bG9ja1N0YXJ0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1QYWRkaW5nQm90dG9tXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBwYWRkaW5nQm90
dG9tOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1QYWRkaW5nSW5saW5lXSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBwYWRkaW5nSW5saW5lOwog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1QYWRkaW5nSW5saW5lRW5kXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBwYWRkaW5nSW5saW5lRW5kOwog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1QYWRkaW5nSW5saW5lU3RhcnRdIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHBhZGRpbmdJbmxpbmVTdGFy
dDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9UGFkZGluZ0xlZnRdIGF0dHJpYnV0ZSBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHBhZGRpbmdMZWZ0OwogICAgW0NF
UmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1QYWRkaW5nUmlnaHRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHBhZGRpbmdSaWdodDsKICAgIFtDRVJlYWN0aW9u
cywgQ1NTUHJvcGVydHk9UGFkZGluZ1RvcF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgcGFkZGluZ1RvcDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9UGFnZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
cGFnZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9UGFnZUJyZWFrQWZ0ZXJdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHBhZ2VCcmVha0FmdGVy
OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1QYWdlQnJlYWtCZWZvcmVdIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHBhZ2VCcmVha0JlZm9yZTsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9UGFnZUJyZWFrSW5zaWRlXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBwYWdlQnJlYWtJbnNpZGU7CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVBhaW50T3JkZXJdIGF0dHJpYnV0ZSBbTGVnYWN5
TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHBhaW50T3JkZXI7CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PVBlcnNwZWN0aXZlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyBwZXJzcGVjdGl2ZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9UGVyc3BlY3RpdmVPcmlnaW5dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIHBlcnNwZWN0aXZlT3JpZ2luOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQ
cm9wZXJ0eT1QZXJzcGVjdGl2ZU9yaWdpblhdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlT
dHJpbmddIENTU09NU3RyaW5nIHBlcnNwZWN0aXZlT3JpZ2luWDsKICAgIFtDRVJlYWN0aW9ucywg
Q1NTUHJvcGVydHk9UGVyc3BlY3RpdmVPcmlnaW5ZXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyBwZXJzcGVjdGl2ZU9yaWdpblk7CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PVBsYWNlQ29udGVudF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gQ1NTT01TdHJpbmcgcGxhY2VDb250ZW50OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQ
cm9wZXJ0eT1QbGFjZUl0ZW1zXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyBwbGFjZUl0ZW1zOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1QbGFj
ZVNlbGZdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHBs
YWNlU2VsZjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9UG9pbnRlckV2ZW50c10gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgcG9pbnRlckV2ZW50
czsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9UG9zaXRpb25dIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHBvc2l0aW9uOwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1RdW90ZXNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIHF1b3RlczsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Ul0g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgcjsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9UmVzaXplXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyByZXNpemU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3Bl
cnR5PVJpZ2h0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyByaWdodDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Um90YXRlLCBFbmFibGVkQnlT
ZXR0aW5nPWNzc0luZGl2aWR1YWxUcmFuc2Zvcm1Qcm9wZXJ0aWVzXSBhdHRyaWJ1dGUgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyByb3RhdGU7CiAgICBbQ0VSZWFjdGlvbnMs
IENTU1Byb3BlcnR5PVJvd0dhcF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgcm93R2FwOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1SeF0gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgcng7CiAgICBbQ0VS
ZWFjdGlvbnMsIENTU1Byb3BlcnR5PVJ5XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyByeTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9U2NhbGUs
IEVuYWJsZWRCeVNldHRpbmc9Y3NzSW5kaXZpZHVhbFRyYW5zZm9ybVByb3BlcnRpZXNdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHNjYWxlOwogICAgW0NF
UmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1TY3JvbGxCZWhhdmlvciwgRW5hYmxlZEJ5U2V0dGluZz1D
U1NPTVZpZXdTbW9vdGhTY3JvbGxpbmddIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIHNjcm9sbEJlaGF2aW9yOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1TY3JvbGxQYWRkaW5nXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyBzY3JvbGxQYWRkaW5nOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1T
Y3JvbGxQYWRkaW5nQm90dG9tXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyBzY3JvbGxQYWRkaW5nQm90dG9tOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1TY3JvbGxQYWRkaW5nTGVmdF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgc2Nyb2xsUGFkZGluZ0xlZnQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PVNjcm9sbFBhZGRpbmdSaWdodF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgc2Nyb2xsUGFkZGluZ1JpZ2h0OwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1TY3JvbGxQYWRkaW5nVG9wXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyBzY3JvbGxQYWRkaW5nVG9wOwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1TY3JvbGxTbmFwQWxpZ25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlT
dHJpbmddIENTU09NU3RyaW5nIHNjcm9sbFNuYXBBbGlnbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9U2Nyb2xsU25hcE1hcmdpbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgc2Nyb2xsU25hcE1hcmdpbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9U2Nyb2xsU25hcE1hcmdpbkJvdHRvbV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgc2Nyb2xsU25hcE1hcmdpbkJvdHRvbTsKICAgIFtDRVJl
YWN0aW9ucywgQ1NTUHJvcGVydHk9U2Nyb2xsU25hcE1hcmdpbkxlZnRdIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHNjcm9sbFNuYXBNYXJnaW5MZWZ0Owog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1TY3JvbGxTbmFwTWFyZ2luUmlnaHRdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHNjcm9sbFNuYXBNYXJn
aW5SaWdodDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9U2Nyb2xsU25hcE1hcmdpblRv
cF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgc2Nyb2xs
U25hcE1hcmdpblRvcDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9U2Nyb2xsU25hcFR5
cGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHNjcm9s
bFNuYXBUeXBlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1TaGFwZUltYWdlVGhyZXNo
b2xkXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBzaGFw
ZUltYWdlVGhyZXNob2xkOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1TaGFwZU1hcmdp
bl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgc2hhcGVN
YXJnaW47CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVNoYXBlT3V0c2lkZV0gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgc2hhcGVPdXRzaWRlOwog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1TaGFwZVJlbmRlcmluZ10gYXR0cmlidXRlIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgc2hhcGVSZW5kZXJpbmc7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVNpemVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIHNpemU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5
PVNwZWFrQXNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IHNwZWFrQXM7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVNyY10gYXR0cmlidXRlIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgc3JjOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1TdG9wQ29sb3JdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIHN0b3BDb2xvcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
U3RvcE9wYWNpdHldIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3Ry
aW5nIHN0b3BPcGFjaXR5OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1TdHJva2VdIGF0
dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHN0cm9rZTsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9U3Ryb2tlQ29sb3JdIGF0dHJpYnV0ZSBbTGVnYWN5
TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHN0cm9rZUNvbG9yOwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1TdHJva2VEYXNoYXJyYXldIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRv
RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHN0cm9rZURhc2hhcnJheTsKICAgIFtDRVJlYWN0aW9u
cywgQ1NTUHJvcGVydHk9U3Ryb2tlRGFzaG9mZnNldF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgc3Ryb2tlRGFzaG9mZnNldDsKICAgIFtDRVJlYWN0aW9u
cywgQ1NTUHJvcGVydHk9U3Ryb2tlTGluZWNhcF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gQ1NTT01TdHJpbmcgc3Ryb2tlTGluZWNhcDsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9U3Ryb2tlTGluZWpvaW5dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIHN0cm9rZUxpbmVqb2luOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1TdHJva2VNaXRlcmxpbWl0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZyBzdHJva2VNaXRlcmxpbWl0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1TdHJva2VPcGFjaXR5XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyBzdHJva2VPcGFjaXR5OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1T
dHJva2VXaWR0aF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgc3Ryb2tlV2lkdGg7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNvbG9yU2NoZW1l
XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBzdXBwb3J0
ZWRDb2xvclNjaGVtZXM7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRhYlNpemVdIGF0
dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHRhYlNpemU7CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRhYmxlTGF5b3V0XSBhdHRyaWJ1dGUgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB0YWJsZUxheW91dDsKICAgIFtDRVJlYWN0
aW9ucywgQ1NTUHJvcGVydHk9VGV4dEFsaWduXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyB0ZXh0QWxpZ247CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3Bl
cnR5PVRleHRBbmNob3JdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIHRleHRBbmNob3I7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRleHREZWNv
cmF0aW9uXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB0
ZXh0RGVjb3JhdGlvbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9VGV4dERlY29yYXRp
b25Db2xvcl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
dGV4dERlY29yYXRpb25Db2xvcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9VGV4dERl
Y29yYXRpb25MaW5lXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyB0ZXh0RGVjb3JhdGlvbkxpbmU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRl
eHREZWNvcmF0aW9uU2tpcF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgdGV4dERlY29yYXRpb25Ta2lwOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1UZXh0RGVjb3JhdGlvblN0eWxlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZyB0ZXh0RGVjb3JhdGlvblN0eWxlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQ
cm9wZXJ0eT1UZXh0RGVjb3JhdGlvblRoaWNrbmVzc10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgdGV4dERlY29yYXRpb25UaGlja25lc3M7CiAgICBbQ0VS
ZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdFRleHRFbXBoYXNpc10gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgdGV4dEVtcGhhc2lzOwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRUZXh0RW1waGFzaXNDb2xvcl0gYXR0cmlidXRlIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgdGV4dEVtcGhhc2lzQ29sb3I7CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdFRleHRFbXBoYXNpc1Bvc2l0aW9uXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB0ZXh0RW1waGFz
aXNQb3NpdGlvbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0VGV4dEVtcGhh
c2lzU3R5bGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IHRleHRFbXBoYXNpc1N0eWxlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1UZXh0SW5k
ZW50XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB0ZXh0
SW5kZW50OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1UZXh0T3JpZW50YXRpb25dIGF0
dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHRleHRPcmllbnRh
dGlvbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9VGV4dE92ZXJmbG93XSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB0ZXh0T3ZlcmZsb3c7CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRleHRSZW5kZXJpbmddIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHRleHRSZW5kZXJpbmc7CiAgICBbQ0VS
ZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRleHRTaGFkb3ddIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRv
RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHRleHRTaGFkb3c7CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PVRleHRUcmFuc2Zvcm1dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIHRleHRUcmFuc2Zvcm07CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3Bl
cnR5PVRleHRVbmRlcmxpbmVPZmZzZXRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIHRleHRVbmRlcmxpbmVPZmZzZXQ7CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PVRleHRVbmRlcmxpbmVQb3NpdGlvbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgdGV4dFVuZGVybGluZVBvc2l0aW9uOwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1Ub3BdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIHRvcDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9VG91Y2hB
Y3Rpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHRv
dWNoQWN0aW9uOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1UcmFuc2Zvcm1dIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHRyYW5zZm9ybTsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9VHJhbnNmb3JtQm94XSBhdHRyaWJ1dGUgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB0cmFuc2Zvcm1Cb3g7CiAgICBbQ0VSZWFj
dGlvbnMsIENTU1Byb3BlcnR5PVRyYW5zZm9ybU9yaWdpbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgdHJhbnNmb3JtT3JpZ2luOwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1UcmFuc2Zvcm1PcmlnaW5YXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB0cmFuc2Zvcm1PcmlnaW5YOwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1UcmFuc2Zvcm1PcmlnaW5ZXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB0cmFuc2Zvcm1PcmlnaW5ZOwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1UcmFuc2Zvcm1PcmlnaW5aXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB0cmFuc2Zvcm1PcmlnaW5aOwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1UcmFuc2Zvcm1TdHlsZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgdHJhbnNmb3JtU3R5bGU7CiAgICBbQ0VSZWFjdGlvbnMs
IENTU1Byb3BlcnR5PVRyYW5zaXRpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIHRyYW5zaXRpb247CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5
PVRyYW5zaXRpb25EZWxheV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgdHJhbnNpdGlvbkRlbGF5OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1U
cmFuc2l0aW9uRHVyYXRpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENT
U09NU3RyaW5nIHRyYW5zaXRpb25EdXJhdGlvbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9VHJhbnNpdGlvblByb3BlcnR5XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZyB0cmFuc2l0aW9uUHJvcGVydHk7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PVRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgdHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uOwogICAgW0NF
UmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1UcmFuc2xhdGUsIEVuYWJsZWRCeVNldHRpbmc9Y3NzSW5k
aXZpZHVhbFRyYW5zZm9ybVByb3BlcnRpZXNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlT
dHJpbmddIENTU09NU3RyaW5nIHRyYW5zbGF0ZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9VW5pY29kZUJpZGldIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIHVuaWNvZGVCaWRpOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Vbmljb2Rl
UmFuZ2VdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHVu
aWNvZGVSYW5nZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9VmVjdG9yRWZmZWN0XSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB2ZWN0b3JFZmZl
Y3Q7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVZlcnRpY2FsQWxpZ25dIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHZlcnRpY2FsQWxpZ247CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVZpc2liaWxpdHldIGF0dHJpYnV0ZSBbTGVnYWN5
TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHZpc2liaWxpdHk7CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PVdoaXRlU3BhY2VdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlT
dHJpbmddIENTU09NU3RyaW5nIHdoaXRlU3BhY2U7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3Bl
cnR5PVdpZG93c10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgd2lkb3dzOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XaWR0aF0gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2lkdGg7CiAgICBbQ0VSZWFj
dGlvbnMsIENTU1Byb3BlcnR5PVdpbGxDaGFuZ2VdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIHdpbGxDaGFuZ2U7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PVdvcmRCcmVha10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgd29yZEJyZWFrOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Xb3JkU3Bh
Y2luZ10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd29y
ZFNwYWNpbmc7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdvcmRXcmFwXSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3b3JkV3JhcDsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V3JpdGluZ01vZGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdyaXRpbmdNb2RlOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1YXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyB4OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1ZXSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB5OwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1aSW5kZXhdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENT
U09NU3RyaW5nIHpJbmRleDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Wm9vbV0gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgem9vbTsKCiAgICAv
LyBGb3IgZWFjaCBDU1MgcHJvcGVydHkgcHJvcGVydHkgdGhhdCBpcyBhIHN1cHBvcnRlZCBDU1Mg
cHJvcGVydHkgYW5kIHRoYXQgYmVnaW5zCiAgICAvLyB3aXRoIHRoZSBzdHJpbmcgLXdlYmtpdC0s
IHRoZSBmb2xsb3dpbmcgcGFydGlhbCBpbnRlcmZhY2UgYXBwbGllcyB3aGVyZSB3ZWJraXQtY2Fz
ZWQKICAgIC8vIGF0dHJpYnV0ZSBpcyBvYnRhaW5lZCBieSBydW5uaW5nIHRoZSBDU1MgcHJvcGVy
dHkgdG8gSURMIGF0dHJpYnV0ZSBhbGdvcml0aG0gZm9yCiAgICAvLyBwcm9wZXJ0eSwgd2l0aCB0
aGUgbG93ZXJjYXNlIGZpcnN0IGZsYWcgc2V0LgogICAgLy8gRXhhbXBsZTogLXdlYmtpdC10cmFu
c2Zvcm0gLT4gZWxlbWVudC5zdHlsZS53ZWJraXRUcmFuc2Zvcm0KICAgIC8vIFtDRVJlYWN0aW9u
c10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgX3dlYmtp
dF9jYXNlZF9hdHRyaWJ1dGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUFsaWduQ29u
dGVudF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Vi
a2l0QWxpZ25Db250ZW50OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1BbGlnbkl0ZW1z
XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRB
bGlnbkl0ZW1zOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1BbGlnblNlbGZdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdEFsaWduU2Vs
ZjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QWx0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51
bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRBbHQ7CiAgICBbQ0VSZWFjdGlvbnMs
IENTU1Byb3BlcnR5PUFuaW1hdGlvbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgd2Via2l0QW5pbWF0aW9uOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1BbmltYXRpb25EZWxheV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgd2Via2l0QW5pbWF0aW9uRGVsYXk7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PUFuaW1hdGlvbkRpcmVjdGlvbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0QW5pbWF0aW9uRGlyZWN0aW9uOwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1BbmltYXRpb25EdXJhdGlvbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0QW5pbWF0aW9uRHVyYXRpb247CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUFuaW1hdGlvbkZpbGxNb2RlXSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRBbmltYXRpb25GaWxsTW9k
ZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QW5pbWF0aW9uSXRlcmF0aW9uQ291bnRd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdEFu
aW1hdGlvbkl0ZXJhdGlvbkNvdW50OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Bbmlt
YXRpb25OYW1lXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyB3ZWJraXRBbmltYXRpb25OYW1lOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Bbmlt
YXRpb25QbGF5U3RhdGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIHdlYmtpdEFuaW1hdGlvblBsYXlTdGF0ZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9QW5pbWF0aW9uVGltaW5nRnVuY3Rpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdEFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uOwogICAg
W0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRBcHBlYXJhbmNlXSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRBcHBlYXJhbmNlOwogICAg
W0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRBc3BlY3RSYXRpb10gYXR0cmlidXRlIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0QXNwZWN0UmF0aW87CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEJhY2tkcm9wRmlsdGVyXSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRCYWNrZHJvcEZp
bHRlcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0QmFja2ZhY2VWaXNpYmls
aXR5XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJr
aXRCYWNrZmFjZVZpc2liaWxpdHk7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtp
dEJhY2tncm91bmRDbGlwXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyB3ZWJraXRCYWNrZ3JvdW5kQ2xpcDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9V2Via2l0QmFja2dyb3VuZENvbXBvc2l0ZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0QmFja2dyb3VuZENvbXBvc2l0ZTsKICAgIFtDRVJl
YWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0QmFja2dyb3VuZE9yaWdpbl0gYXR0cmlidXRlIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0QmFja2dyb3VuZE9yaWdp
bjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0QmFja2dyb3VuZFNpemVdIGF0
dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdEJhY2tn
cm91bmRTaXplOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJCbG9ja0VuZF0g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0Qm9y
ZGVyQWZ0ZXI7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJvcmRlckJsb2NrRW5kQ29s
b3JdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtp
dEJvcmRlckFmdGVyQ29sb3I7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJvcmRlckJs
b2NrRW5kU3R5bGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3Ry
aW5nIHdlYmtpdEJvcmRlckFmdGVyU3R5bGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5
PUJvcmRlckJsb2NrRW5kV2lkdGhdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIHdlYmtpdEJvcmRlckFmdGVyV2lkdGg7CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PUJvcmRlckJsb2NrU3RhcnRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlT
dHJpbmddIENTU09NU3RyaW5nIHdlYmtpdEJvcmRlckJlZm9yZTsKICAgIFtDRVJlYWN0aW9ucywg
Q1NTUHJvcGVydHk9Qm9yZGVyQmxvY2tTdGFydENvbG9yXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRCb3JkZXJCZWZvcmVDb2xvcjsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyQmxvY2tTdGFydFN0eWxlXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRCb3JkZXJCZWZvcmVT
dHlsZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyQmxvY2tTdGFydFdpZHRo
XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRC
b3JkZXJCZWZvcmVXaWR0aDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyQm90
dG9tTGVmdFJhZGl1c10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01T
dHJpbmcgd2Via2l0Qm9yZGVyQm90dG9tTGVmdFJhZGl1czsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9Qm9yZGVyQm90dG9tUmlnaHRSYWRpdXNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRv
RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdEJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOwog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJJbmxpbmVFbmRdIGF0dHJpYnV0ZSBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdEJvcmRlckVuZDsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVySW5saW5lRW5kQ29sb3JdIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdEJvcmRlckVuZENv
bG9yOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJJbmxpbmVFbmRTdHlsZV0g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0Qm9y
ZGVyRW5kU3R5bGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJvcmRlcklubGluZUVu
ZFdpZHRoXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3
ZWJraXRCb3JkZXJFbmRXaWR0aDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0
Qm9yZGVyRml0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyB3ZWJraXRCb3JkZXJGaXQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEJv
cmRlckhvcml6b250YWxTcGFjaW5nXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZyB3ZWJraXRCb3JkZXJIb3Jpem9udGFsU3BhY2luZzsKICAgIFtDRVJlYWN0
aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0Qm9yZGVySW1hZ2VdIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdEJvcmRlckltYWdlOwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRCb3JkZXJSYWRpdXNdIGF0dHJpYnV0ZSBbTGVnYWN5
TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdEJvcmRlclJhZGl1czsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVySW5saW5lU3RhcnRdIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdEJvcmRlclN0YXJ0OwogICAg
W0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJJbmxpbmVTdGFydENvbG9yXSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRCb3JkZXJTdGFy
dENvbG9yOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJJbmxpbmVTdGFydFN0
eWxlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJr
aXRCb3JkZXJTdGFydFN0eWxlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJJ
bmxpbmVTdGFydFdpZHRoXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyB3ZWJraXRCb3JkZXJTdGFydFdpZHRoOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1Cb3JkZXJUb3BMZWZ0UmFkaXVzXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyB3ZWJraXRCb3JkZXJUb3BMZWZ0UmFkaXVzOwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJUb3BSaWdodFJhZGl1c10gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0Qm9yZGVyVG9wUmlnaHRSYWRpdXM7
CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEJvcmRlclZlcnRpY2FsU3BhY2lu
Z10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0
Qm9yZGVyVmVydGljYWxTcGFjaW5nOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJr
aXRCb3hBbGlnbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgd2Via2l0Qm94QWxpZ247CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEJv
eERlY29yYXRpb25CcmVha10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgd2Via2l0Qm94RGVjb3JhdGlvbkJyZWFrOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQ
cm9wZXJ0eT1XZWJraXRCb3hEaXJlY3Rpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlT
dHJpbmddIENTU09NU3RyaW5nIHdlYmtpdEJveERpcmVjdGlvbjsKICAgIFtDRVJlYWN0aW9ucywg
Q1NTUHJvcGVydHk9V2Via2l0Qm94RmxleF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0Qm94RmxleDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9V2Via2l0Qm94RmxleEdyb3VwXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyB3ZWJraXRCb3hGbGV4R3JvdXA7CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PVdlYmtpdEJveExpbmVzXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyB3ZWJraXRCb3hMaW5lczsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9V2Via2l0Qm94T3JkaW5hbEdyb3VwXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRCb3hPcmRpbmFsR3JvdXA7CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PVdlYmtpdEJveE9yaWVudF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0Qm94T3JpZW50OwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1XZWJraXRCb3hQYWNrXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRCb3hQYWNrOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQ
cm9wZXJ0eT1XZWJraXRCb3hSZWZsZWN0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyB3ZWJraXRCb3hSZWZsZWN0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQ
cm9wZXJ0eT1XZWJraXRCb3hTaGFkb3ddIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIHdlYmtpdEJveFNoYWRvdzsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9Qm94U2l6aW5nXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyB3ZWJraXRCb3hTaXppbmc7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNs
aXBQYXRoXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3
ZWJraXRDbGlwUGF0aDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0Q29sdW1u
QXhpc10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Vi
a2l0Q29sdW1uQXhpczsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0Q29sdW1u
QnJlYWtBZnRlcl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgd2Via2l0Q29sdW1uQnJlYWtBZnRlcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
V2Via2l0Q29sdW1uQnJlYWtCZWZvcmVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIHdlYmtpdENvbHVtbkJyZWFrQmVmb3JlOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1XZWJraXRDb2x1bW5CcmVha0luc2lkZV0gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0Q29sdW1uQnJlYWtJbnNpZGU7CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNvbHVtbkNvdW50XSBhdHRyaWJ1dGUgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRDb2x1bW5Db3VudDsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Q29sdW1uRmlsbF0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0Q29sdW1uRmlsbDsKICAgIFtDRVJlYWN0
aW9ucywgQ1NTUHJvcGVydHk9Q29sdW1uR2FwXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRDb2x1bW5HYXA7CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PVdlYmtpdENvbHVtblByb2dyZXNzaW9uXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRDb2x1bW5Qcm9ncmVzc2lvbjsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Q29sdW1uUnVsZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0Q29sdW1uUnVsZTsKICAgIFtDRVJlYWN0
aW9ucywgQ1NTUHJvcGVydHk9Q29sdW1uUnVsZUNvbG9yXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRDb2x1bW5SdWxlQ29sb3I7CiAgICBbQ0VS
ZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNvbHVtblJ1bGVTdHlsZV0gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0Q29sdW1uUnVsZVN0eWxlOwogICAg
W0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Db2x1bW5SdWxlV2lkdGhdIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdENvbHVtblJ1bGVXaWR0aDsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Q29sdW1uU3Bhbl0gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0Q29sdW1uU3BhbjsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Q29sdW1uV2lkdGhdIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdENvbHVtbldpZHRoOwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1Db2x1bW5zXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRDb2x1bW5zOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQ
cm9wZXJ0eT1XZWJraXRDdXJzb3JWaXNpYmlsaXR5XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRDdXJzb3JWaXNpYmlsaXR5OwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1GaWx0ZXJdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlT
dHJpbmddIENTU09NU3RyaW5nIHdlYmtpdEZpbHRlcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9RmxleF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgd2Via2l0RmxleDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9RmxleEJhc2lzXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRGbGV4
QmFzaXM7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZsZXhEaXJlY3Rpb25dIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdEZsZXhEaXJl
Y3Rpb247CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZsZXhGbG93XSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRGbGV4RmxvdzsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9RmxleEdyb3ddIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdEZsZXhHcm93OwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1GbGV4U2hyaW5rXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRGbGV4U2hyaW5rOwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1GbGV4V3JhcF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgd2Via2l0RmxleFdyYXA7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5
PVdlYmtpdEZvbnRLZXJuaW5nXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyB3ZWJraXRGb250S2VybmluZzsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9V2Via2l0Rm9udFNtb290aGluZ10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgd2Via2l0Rm9udFNtb290aGluZzsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9V2Via2l0SHlwaGVuYXRlQ2hhcmFjdGVyXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRIeXBoZW5hdGVDaGFyYWN0ZXI7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEh5cGhlbmF0ZUxpbWl0QWZ0ZXJdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdEh5cGhlbmF0
ZUxpbWl0QWZ0ZXI7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEh5cGhlbmF0
ZUxpbWl0QmVmb3JlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyB3ZWJraXRIeXBoZW5hdGVMaW1pdEJlZm9yZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9V2Via2l0SHlwaGVuYXRlTGltaXRMaW5lc10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0SHlwaGVuYXRlTGltaXRMaW5lczsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0SHlwaGVuc10gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0SHlwaGVuczsKICAgIFtDRVJlYWN0
aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0SW5pdGlhbExldHRlcl0gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0SW5pdGlhbExldHRlcjsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9SnVzdGlmeUNvbnRlbnRdIGF0dHJpYnV0ZSBbTGVnYWN5
TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdEp1c3RpZnlDb250ZW50OwogICAg
W0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1KdXN0aWZ5SXRlbXNdIGF0dHJpYnV0ZSBbTGVnYWN5
TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdEp1c3RpZnlJdGVtczsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0TGluZUFsaWduXSBhdHRyaWJ1dGUgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRMaW5lQWxpZ247CiAgICBbQ0VS
ZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdExpbmVCb3hDb250YWluXSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRMaW5lQm94Q29udGFpbjsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9TGluZUJyZWFrXSBhdHRyaWJ1dGUgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRMaW5lQnJlYWs7CiAgICBbQ0VS
ZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdExpbmVDbGFtcF0gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0TGluZUNsYW1wOwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRMaW5lR3JpZF0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0TGluZUdyaWQ7CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PVdlYmtpdExpbmVTbmFwXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRMaW5lU25hcDsKICAgIFtDRVJlYWN0aW9ucywg
Q1NTUHJvcGVydHk9V2Via2l0TG9jYWxlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyB3ZWJraXRMb2NhbGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3Bl
cnR5PUJsb2NrU2l6ZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01T
dHJpbmcgd2Via2l0TG9naWNhbEhlaWdodDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
SW5saW5lU2l6ZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgd2Via2l0TG9naWNhbFdpZHRoOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1NYXJn
aW5CbG9ja0VuZF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgd2Via2l0TWFyZ2luQWZ0ZXI7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtp
dE1hcmdpbkFmdGVyQ29sbGFwc2VdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIHdlYmtpdE1hcmdpbkFmdGVyQ29sbGFwc2U7CiAgICBbQ0VSZWFjdGlvbnMs
IENTU1Byb3BlcnR5PU1hcmdpbkJsb2NrU3RhcnRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdE1hcmdpbkJlZm9yZTsKICAgIFtDRVJlYWN0aW9u
cywgQ1NTUHJvcGVydHk9V2Via2l0TWFyZ2luQmVmb3JlQ29sbGFwc2VdIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdE1hcmdpbkJlZm9yZUNvbGxh
cHNlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRNYXJnaW5Cb3R0b21Db2xs
YXBzZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Vi
a2l0TWFyZ2luQm90dG9tQ29sbGFwc2U7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdl
YmtpdE1hcmdpbkNvbGxhcHNlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyB3ZWJraXRNYXJnaW5Db2xsYXBzZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9TWFyZ2luSW5saW5lRW5kXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZyB3ZWJraXRNYXJnaW5FbmQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3Bl
cnR5PU1hcmdpbklubGluZVN0YXJ0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZyB3ZWJraXRNYXJnaW5TdGFydDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9V2Via2l0TWFyZ2luVG9wQ29sbGFwc2VdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdE1hcmdpblRvcENvbGxhcHNlOwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRNYXNrXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRNYXNrOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQ
cm9wZXJ0eT1XZWJraXRNYXNrQm94SW1hZ2VdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlT
dHJpbmddIENTU09NU3RyaW5nIHdlYmtpdE1hc2tCb3hJbWFnZTsKICAgIFtDRVJlYWN0aW9ucywg
Q1NTUHJvcGVydHk9V2Via2l0TWFza0JveEltYWdlT3V0c2V0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51
bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRNYXNrQm94SW1hZ2VPdXRzZXQ7CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdE1hc2tCb3hJbWFnZVJlcGVhdF0gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0TWFza0Jv
eEltYWdlUmVwZWF0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRNYXNrQm94
SW1hZ2VTbGljZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgd2Via2l0TWFza0JveEltYWdlU2xpY2U7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5
PVdlYmtpdE1hc2tCb3hJbWFnZVNvdXJjZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0TWFza0JveEltYWdlU291cmNlOwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1XZWJraXRNYXNrQm94SW1hZ2VXaWR0aF0gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0TWFza0JveEltYWdlV2lkdGg7
CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdE1hc2tDbGlwXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRNYXNrQ2xpcDsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0TWFza0NvbXBvc2l0ZV0gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0TWFza0NvbXBvc2l0
ZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0TWFza0ltYWdlXSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRNYXNrSW1hZ2U7
CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdE1hc2tPcmlnaW5dIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdE1hc2tPcmlnaW47
CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdE1hc2tQb3NpdGlvbl0gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0TWFza1Bvc2l0
aW9uOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRNYXNrUG9zaXRpb25YXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRNYXNr
UG9zaXRpb25YOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRNYXNrUG9zaXRp
b25ZXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJr
aXRNYXNrUG9zaXRpb25ZOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRNYXNr
UmVwZWF0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3
ZWJraXRNYXNrUmVwZWF0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRNYXNr
U2l6ZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Vi
a2l0TWFza1NpemU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdE1hc2tTb3Vy
Y2VUeXBlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3
ZWJraXRNYXNrU291cmNlVHlwZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9TWF4Qmxv
Y2tTaXplXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3
ZWJraXRNYXhMb2dpY2FsSGVpZ2h0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1NYXhJ
bmxpbmVTaXplXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyB3ZWJraXRNYXhMb2dpY2FsV2lkdGg7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PU1p
bkJsb2NrU2l6ZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgd2Via2l0TWluTG9naWNhbEhlaWdodDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
TWluSW5saW5lU2l6ZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01T
dHJpbmcgd2Via2l0TWluTG9naWNhbFdpZHRoOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1XZWJraXROYnNwTW9kZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgd2Via2l0TmJzcE1vZGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PU9w
YWNpdHldIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdl
YmtpdE9wYWNpdHk7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PU9yZGVyXSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRPcmRlcjsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9UGFkZGluZ0Jsb2NrRW5kXSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRQYWRkaW5nQWZ0ZXI7CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVBhZGRpbmdCbG9ja1N0YXJ0XSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRQYWRkaW5nQmVmb3Jl
OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1QYWRkaW5nSW5saW5lRW5kXSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRQYWRkaW5nRW5k
OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1QYWRkaW5nSW5saW5lU3RhcnRdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdFBhZGRpbmdT
dGFydDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9UGVyc3BlY3RpdmVdIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdFBlcnNwZWN0aXZl
OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1QZXJzcGVjdGl2ZU9yaWdpbl0gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0UGVyc3BlY3Rp
dmVPcmlnaW47CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVBlcnNwZWN0aXZlT3JpZ2lu
WF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0
UGVyc3BlY3RpdmVPcmlnaW5YOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1QZXJzcGVj
dGl2ZU9yaWdpblldIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3Ry
aW5nIHdlYmtpdFBlcnNwZWN0aXZlT3JpZ2luWTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9V2Via2l0UHJpbnRDb2xvckFkanVzdF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0UHJpbnRDb2xvckFkanVzdDsKICAgIFtDRVJlYWN0aW9u
cywgQ1NTUHJvcGVydHk9V2Via2l0UnRsT3JkZXJpbmddIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRv
RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdFJ0bE9yZGVyaW5nOwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1XZWJraXRSdWJ5UG9zaXRpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdFJ1YnlQb3NpdGlvbjsKICAgIFtDRVJl
YWN0aW9ucywgQ1NTUHJvcGVydHk9U2hhcGVJbWFnZVRocmVzaG9sZF0gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0U2hhcGVJbWFnZVRocmVzaG9s
ZDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9U2hhcGVNYXJnaW5dIGF0dHJpYnV0ZSBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdFNoYXBlTWFyZ2luOwog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1TaGFwZU91dHNpZGVdIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdFNoYXBlT3V0c2lkZTsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0VGV4dENvbWJpbmVdIGF0dHJpYnV0ZSBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdFRleHRDb21iaW5lOwog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRUZXh0RGVjb3JhdGlvbl0gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0VGV4dERlY29y
YXRpb247CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRleHREZWNvcmF0aW9uQ29sb3Jd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdFRl
eHREZWNvcmF0aW9uQ29sb3I7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRleHREZWNv
cmF0aW9uTGluZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgd2Via2l0VGV4dERlY29yYXRpb25MaW5lOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1UZXh0RGVjb3JhdGlvblNraXBdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIHdlYmtpdFRleHREZWNvcmF0aW9uU2tpcDsKICAgIFtDRVJlYWN0aW9ucywg
Q1NTUHJvcGVydHk9VGV4dERlY29yYXRpb25TdHlsZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0VGV4dERlY29yYXRpb25TdHlsZTsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0VGV4dERlY29yYXRpb25zSW5FZmZlY3RdIGF0
dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdFRleHRE
ZWNvcmF0aW9uc0luRWZmZWN0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRU
ZXh0RW1waGFzaXNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3Ry
aW5nIHdlYmtpdFRleHRFbXBoYXNpczsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Vi
a2l0VGV4dEVtcGhhc2lzQ29sb3JdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIHdlYmtpdFRleHRFbXBoYXNpc0NvbG9yOwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1XZWJraXRUZXh0RW1waGFzaXNQb3NpdGlvbl0gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0VGV4dEVtcGhhc2lzUG9zaXRpb247
CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdFRleHRFbXBoYXNpc1N0eWxlXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRUZXh0
RW1waGFzaXNTdHlsZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0VGV4dEZp
bGxDb2xvcl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
d2Via2l0VGV4dEZpbGxDb2xvcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0
VGV4dE9yaWVudGF0aW9uXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyB3ZWJraXRUZXh0T3JpZW50YXRpb247CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3Bl
cnR5PVdlYmtpdFRleHRTZWN1cml0eV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgd2Via2l0VGV4dFNlY3VyaXR5OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQ
cm9wZXJ0eT1XZWJraXRUZXh0U2l6ZUFkanVzdF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0VGV4dFNpemVBZGp1c3Q7CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PVdlYmtpdFRleHRTdHJva2VdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRv
RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdFRleHRTdHJva2U7CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PVdlYmtpdFRleHRTdHJva2VDb2xvcl0gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0VGV4dFN0cm9rZUNvbG9yOwogICAg
W0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRUZXh0U3Ryb2tlV2lkdGhdIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdFRleHRTdHJva2VX
aWR0aDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9VGV4dFVuZGVybGluZVBvc2l0aW9u
XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRU
ZXh0VW5kZXJsaW5lUG9zaXRpb247CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtp
dFRleHRab29tXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyB3ZWJraXRUZXh0Wm9vbTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9VHJhbnNmb3Jt
XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRU
cmFuc2Zvcm07CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRyYW5zZm9ybU9yaWdpbl0g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0VHJh
bnNmb3JtT3JpZ2luOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1UcmFuc2Zvcm1Pcmln
aW5YXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJr
aXRUcmFuc2Zvcm1PcmlnaW5YOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1UcmFuc2Zv
cm1PcmlnaW5ZXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyB3ZWJraXRUcmFuc2Zvcm1PcmlnaW5ZOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1U
cmFuc2Zvcm1PcmlnaW5aXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyB3ZWJraXRUcmFuc2Zvcm1PcmlnaW5aOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1XZWJraXRUcmFuc2Zvcm1TdHlsZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0VHJhbnNmb3JtU3R5bGU7CiAgICBbQ0VSZWFjdGlvbnMs
IENTU1Byb3BlcnR5PVRyYW5zaXRpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIHdlYmtpdFRyYW5zaXRpb247CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PVRyYW5zaXRpb25EZWxheV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgd2Via2l0VHJhbnNpdGlvbkRlbGF5OwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1UcmFuc2l0aW9uRHVyYXRpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIHdlYmtpdFRyYW5zaXRpb25EdXJhdGlvbjsKICAgIFtDRVJl
YWN0aW9ucywgQ1NTUHJvcGVydHk9VHJhbnNpdGlvblByb3BlcnR5XSBhdHRyaWJ1dGUgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJraXRUcmFuc2l0aW9uUHJvcGVydHk7
CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbl0g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2Via2l0VHJh
bnNpdGlvblRpbWluZ0Z1bmN0aW9uOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJr
aXRVc2VyRHJhZ10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgd2Via2l0VXNlckRyYWc7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdFVz
ZXJNb2RpZnldIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IHdlYmtpdFVzZXJNb2RpZnk7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdFVz
ZXJTZWxlY3RdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IHdlYmtpdFVzZXJTZWxlY3Q7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdyaXRpbmdN
b2RlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3ZWJr
aXRXcml0aW5nTW9kZTsKCiAgICAvLyBGb3IgZWFjaCBDU1MgcHJvcGVydHkgcHJvcGVydHkgdGhh
dCBpcyBhIHN1cHBvcnRlZCBDU1MgcHJvcGVydHksIGV4Y2VwdCBmb3IKICAgIC8vIHByb3BlcnRp
ZXMgdGhhdCBoYXZlIG5vICItIiAoVSswMDJEKSBpbiB0aGUgcHJvcGVydHkgbmFtZSwgdGhlIGZv
bGxvd2luZyBwYXJ0aWFsCiAgICAvLyBpbnRlcmZhY2UgYXBwbGllcyB3aGVyZSBkYXNoZWQgYXR0
cmlidXRlIGlzIHByb3BlcnR5LgogICAgLy8gRXhhbXBsZTogZm9udC1zaXplIC0+IGVsZW1lbnQu
c3R5bGVbJ2ZvbnQtc2l6ZSddCiAgICAvLyBFeGFtcGxlOiAtd2Via2l0LXRyYW5zZm9ybSAtPiBl
bGVtZW50LnN0eWxlLlsnLXdlYmtpdC10cmFuc2Zvcm0nXQogICAgLy8gW0NFUmVhY3Rpb25zXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBfZGFzaGVkX2F0
dHJpYnV0ZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QXBwbGVDb2xvckZpbHRlcl0g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLWFwcGxlLWNv
bG9yLWZpbHRlcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QXBwbGVQYXlCdXR0b25T
dHlsZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLWFw
cGxlLXBheS1idXR0b24tc3R5bGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUFwcGxl
UGF5QnV0dG9uVHlwZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01T
dHJpbmcgLWFwcGxlLXBheS1idXR0b24tdHlwZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9QXBwbGVUcmFpbGluZ1dvcmRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIC1hcHBsZS10cmFpbGluZy13b3JkOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQ
cm9wZXJ0eT1DYXB0aW9uU2lkZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgLWVwdWItY2FwdGlvbi1zaWRlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1XZWJraXRIeXBoZW5zXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyAtZXB1Yi1oeXBoZW5zOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1X
ZWJraXRUZXh0Q29tYmluZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgLWVwdWItdGV4dC1jb21iaW5lOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1XZWJraXRUZXh0RW1waGFzaXNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIC1lcHViLXRleHQtZW1waGFzaXM7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PVdlYmtpdFRleHRFbXBoYXNpc0NvbG9yXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtZXB1Yi10ZXh0LWVtcGhhc2lzLWNvbG9yOwogICAgW0NF
UmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRUZXh0RW1waGFzaXNTdHlsZV0gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLWVwdWItdGV4dC1lbXBoYXNp
cy1zdHlsZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0VGV4dE9yaWVudGF0
aW9uXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtZXB1
Yi10ZXh0LW9yaWVudGF0aW9uOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1UZXh0VHJh
bnNmb3JtXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAt
ZXB1Yi10ZXh0LXRyYW5zZm9ybTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V29yZEJy
ZWFrXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtZXB1
Yi13b3JkLWJyZWFrOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Xcml0aW5nTW9kZV0g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLWVwdWItd3Jp
dGluZy1tb2RlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1JbnRlcm5hbFRleHRBdXRv
c2l6aW5nU3RhdHVzXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyAtaW50ZXJuYWwtdGV4dC1hdXRvc2l6aW5nLXN0YXR1czsKICAgIFtDRVJlYWN0aW9ucywg
Q1NTUHJvcGVydHk9QWxpZ25Db250ZW50XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LWFsaWduLWNvbnRlbnQ7CiAgICBbQ0VSZWFjdGlvbnMs
IENTU1Byb3BlcnR5PUFsaWduSXRlbXNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIC13ZWJraXQtYWxpZ24taXRlbXM7CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PUFsaWduU2VsZl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgLXdlYmtpdC1hbGlnbi1zZWxmOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1BbHRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IC13ZWJraXQtYWx0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1BbmltYXRpb25dIGF0
dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtYW5p
bWF0aW9uOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1BbmltYXRpb25EZWxheV0gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1hbmlt
YXRpb24tZGVsYXk7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUFuaW1hdGlvbkRpcmVj
dGlvbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdl
YmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1B
bmltYXRpb25EdXJhdGlvbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb247CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PUFuaW1hdGlvbkZpbGxNb2RlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU7CiAgICBbQ0VS
ZWFjdGlvbnMsIENTU1Byb3BlcnR5PUFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50XSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LWFuaW1hdGlvbi1p
dGVyYXRpb24tY291bnQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUFuaW1hdGlvbk5h
bWVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJr
aXQtYW5pbWF0aW9uLW5hbWU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUFuaW1hdGlv
blBsYXlTdGF0ZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgLXdlYmtpdC1hbmltYXRpb24tcGxheS1zdGF0ZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9QW5pbWF0aW9uVGltaW5nRnVuY3Rpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0QXBwZWFyYW5jZV0gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1hcHBlYXJhbmNl
OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRBc3BlY3RSYXRpb10gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1hc3BlY3Qt
cmF0aW87CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEJhY2tkcm9wRmlsdGVy
XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0
LWJhY2tkcm9wLWZpbHRlcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0QmFj
a2ZhY2VWaXNpYmlsaXR5XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk7CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PVdlYmtpdEJhY2tncm91bmRDbGlwXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LWJhY2tncm91bmQtY2xpcDsKICAgIFtDRVJl
YWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0QmFja2dyb3VuZENvbXBvc2l0ZV0gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1iYWNrZ3JvdW5k
LWNvbXBvc2l0ZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0QmFja2dyb3Vu
ZE9yaWdpbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
LXdlYmtpdC1iYWNrZ3JvdW5kLW9yaWdpbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
V2Via2l0QmFja2dyb3VuZFNpemVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIC13ZWJraXQtYmFja2dyb3VuZC1zaXplOwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1Cb3JkZXJCbG9ja0VuZF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1ib3JkZXItYWZ0ZXI7CiAgICBbQ0VSZWFjdGlvbnMs
IENTU1Byb3BlcnR5PUJvcmRlckJsb2NrRW5kQ29sb3JdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRv
RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtYm9yZGVyLWFmdGVyLWNvbG9yOwogICAg
W0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJCbG9ja0VuZFN0eWxlXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LWJvcmRlci1hZnRl
ci1zdHlsZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyQmxvY2tFbmRXaWR0
aF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtp
dC1ib3JkZXItYWZ0ZXItd2lkdGg7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJvcmRl
ckJsb2NrU3RhcnRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3Ry
aW5nIC13ZWJraXQtYm9yZGVyLWJlZm9yZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
Qm9yZGVyQmxvY2tTdGFydENvbG9yXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZyAtd2Via2l0LWJvcmRlci1iZWZvcmUtY29sb3I7CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PUJvcmRlckJsb2NrU3RhcnRTdHlsZV0gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1ib3JkZXItYmVmb3JlLXN0eWxl
OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJCbG9ja1N0YXJ0V2lkdGhdIGF0
dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtYm9y
ZGVyLWJlZm9yZS13aWR0aDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyQm90
dG9tTGVmdFJhZGl1c10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01T
dHJpbmcgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1Cb3JkZXJCb3R0b21SaWdodFJhZGl1c10gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0
LXJhZGl1czsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVySW5saW5lRW5kXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LWJv
cmRlci1lbmQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJvcmRlcklubGluZUVuZENv
bG9yXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Vi
a2l0LWJvcmRlci1lbmQtY29sb3I7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJvcmRl
cklubGluZUVuZFN0eWxlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyAtd2Via2l0LWJvcmRlci1lbmQtc3R5bGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PUJvcmRlcklubGluZUVuZFdpZHRoXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LWJvcmRlci1lbmQtd2lkdGg7CiAgICBbQ0VSZWFj
dGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEJvcmRlckZpdF0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1ib3JkZXItZml0OwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRCb3JkZXJIb3Jpem9udGFsU3BhY2luZ10gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1ib3JkZXIt
aG9yaXpvbnRhbC1zcGFjaW5nOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRC
b3JkZXJJbWFnZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgLXdlYmtpdC1ib3JkZXItaW1hZ2U7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdl
YmtpdEJvcmRlclJhZGl1c10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgLXdlYmtpdC1ib3JkZXItcmFkaXVzOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1Cb3JkZXJJbmxpbmVTdGFydF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgLXdlYmtpdC1ib3JkZXItc3RhcnQ7CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PUJvcmRlcklubGluZVN0YXJ0Q29sb3JdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRv
RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtYm9yZGVyLXN0YXJ0LWNvbG9yOwogICAg
W0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJJbmxpbmVTdGFydFN0eWxlXSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LWJvcmRlci1z
dGFydC1zdHlsZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVySW5saW5lU3Rh
cnRXaWR0aF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
LXdlYmtpdC1ib3JkZXItc3RhcnQtd2lkdGg7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5
PUJvcmRlclRvcExlZnRSYWRpdXNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czsKICAgIFtDRVJlYWN0
aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyVG9wUmlnaHRSYWRpdXNdIGF0dHJpYnV0ZSBbTGVnYWN5
TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1y
YWRpdXM7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEJvcmRlclZlcnRpY2Fs
U3BhY2luZ10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
LXdlYmtpdC1ib3JkZXItdmVydGljYWwtc3BhY2luZzsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9V2Via2l0Qm94QWxpZ25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIC13ZWJraXQtYm94LWFsaWduOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1XZWJraXRCb3hEZWNvcmF0aW9uQnJlYWtdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtYm94LWRlY29yYXRpb24tYnJlYWs7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEJveERpcmVjdGlvbl0gYXR0cmlidXRlIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1ib3gtZGlyZWN0aW9u
OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRCb3hGbGV4XSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LWJveC1mbGV4Owog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRCb3hGbGV4R3JvdXBdIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtYm94LWZsZXgt
Z3JvdXA7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEJveExpbmVzXSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LWJveC1s
aW5lczsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0Qm94T3JkaW5hbEdyb3Vw
XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0
LWJveC1vcmRpbmFsLWdyb3VwOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRC
b3hPcmllbnRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IC13ZWJraXQtYm94LW9yaWVudDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0
Qm94UGFja10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
LXdlYmtpdC1ib3gtcGFjazsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0Qm94
UmVmbGVjdF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
LXdlYmtpdC1ib3gtcmVmbGVjdDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0
Qm94U2hhZG93XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyAtd2Via2l0LWJveC1zaGFkb3c7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJveFNp
emluZ10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdl
YmtpdC1ib3gtc2l6aW5nOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1DbGlwUGF0aF0g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1j
bGlwLXBhdGg7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdENvbHVtbkF4aXNd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQt
Y29sdW1uLWF4aXM7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdENvbHVtbkJy
ZWFrQWZ0ZXJdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IC13ZWJraXQtY29sdW1uLWJyZWFrLWFmdGVyOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1XZWJraXRDb2x1bW5CcmVha0JlZm9yZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1jb2x1bW4tYnJlYWstYmVmb3JlOwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRDb2x1bW5CcmVha0luc2lkZV0gYXR0cmlidXRlIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1jb2x1bW4tYnJlYWst
aW5zaWRlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Db2x1bW5Db3VudF0gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1jb2x1bW4t
Y291bnQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNvbHVtbkZpbGxdIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtY29sdW1uLWZp
bGw7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNvbHVtbkdhcF0gYXR0cmlidXRlIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1jb2x1bW4tZ2FwOwog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRDb2x1bW5Qcm9ncmVzc2lvbl0gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1jb2x1
bW4tcHJvZ3Jlc3Npb247CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNvbHVtblJ1bGVd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQt
Y29sdW1uLXJ1bGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNvbHVtblJ1bGVDb2xv
cl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtp
dC1jb2x1bW4tcnVsZS1jb2xvcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Q29sdW1u
UnVsZVN0eWxlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyAtd2Via2l0LWNvbHVtbi1ydWxlLXN0eWxlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1Db2x1bW5SdWxlV2lkdGhdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENT
U09NU3RyaW5nIC13ZWJraXQtY29sdW1uLXJ1bGUtd2lkdGg7CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PUNvbHVtblNwYW5dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIC13ZWJraXQtY29sdW1uLXNwYW47CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PUNvbHVtbldpZHRoXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyAtd2Via2l0LWNvbHVtbi13aWR0aDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9Q29sdW1uc10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01T
dHJpbmcgLXdlYmtpdC1jb2x1bW5zOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJr
aXRDdXJzb3JWaXNpYmlsaXR5XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyAtd2Via2l0LWN1cnNvci12aXNpYmlsaXR5OwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1GaWx0ZXJdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENT
U09NU3RyaW5nIC13ZWJraXQtZmlsdGVyOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1G
bGV4XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Vi
a2l0LWZsZXg7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZsZXhCYXNpc10gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1mbGV4LWJh
c2lzOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1GbGV4RGlyZWN0aW9uXSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LWZsZXgtZGly
ZWN0aW9uOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1GbGV4Rmxvd10gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1mbGV4LWZsb3c7
CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZsZXhHcm93XSBhdHRyaWJ1dGUgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LWZsZXgtZ3JvdzsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9RmxleFNocmlua10gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1mbGV4LXNocmluazsKICAgIFtDRVJl
YWN0aW9ucywgQ1NTUHJvcGVydHk9RmxleFdyYXBdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtZmxleC13cmFwOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1XZWJraXRGb250S2VybmluZ10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1mb250LWtlcm5pbmc7CiAgICBbQ0VSZWFj
dGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEZvbnRTbW9vdGhpbmddIGF0dHJpYnV0ZSBbTGVnYWN5
TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtZm9udC1zbW9vdGhpbmc7CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEh5cGhlbmF0ZUNoYXJhY3Rlcl0gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1oeXBo
ZW5hdGUtY2hhcmFjdGVyOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRIeXBo
ZW5hdGVMaW1pdEFmdGVyXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyAtd2Via2l0LWh5cGhlbmF0ZS1saW1pdC1hZnRlcjsKICAgIFtDRVJlYWN0aW9ucywg
Q1NTUHJvcGVydHk9V2Via2l0SHlwaGVuYXRlTGltaXRCZWZvcmVdIGF0dHJpYnV0ZSBbTGVnYWN5
TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtaHlwaGVuYXRlLWxpbWl0LWJl
Zm9yZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0SHlwaGVuYXRlTGltaXRM
aW5lc10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdl
YmtpdC1oeXBoZW5hdGUtbGltaXQtbGluZXM7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5
PVdlYmtpdEh5cGhlbnNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIC13ZWJraXQtaHlwaGVuczsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Vi
a2l0SW5pdGlhbExldHRlcl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgLXdlYmtpdC1pbml0aWFsLWxldHRlcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9SnVzdGlmeUNvbnRlbnRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIC13ZWJraXQtanVzdGlmeS1jb250ZW50OwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1KdXN0aWZ5SXRlbXNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIC13ZWJraXQtanVzdGlmeS1pdGVtczsKICAgIFtDRVJlYWN0aW9ucywg
Q1NTUHJvcGVydHk9V2Via2l0TGluZUFsaWduXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LWxpbmUtYWxpZ247CiAgICBbQ0VSZWFjdGlvbnMs
IENTU1Byb3BlcnR5PVdlYmtpdExpbmVCb3hDb250YWluXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LWxpbmUtYm94LWNvbnRhaW47CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUxpbmVCcmVha10gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1saW5lLWJyZWFrOwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRMaW5lQ2xhbXBdIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtbGluZS1jbGFtcDsKICAgIFtDRVJl
YWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0TGluZUdyaWRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtbGluZS1ncmlkOwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRMaW5lU25hcF0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1saW5lLXNuYXA7CiAgICBbQ0VSZWFj
dGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdExvY2FsZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1sb2NhbGU7CiAgICBbQ0VSZWFjdGlvbnMs
IENTU1Byb3BlcnR5PUJsb2NrU2l6ZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgLXdlYmtpdC1sb2dpY2FsLWhlaWdodDsKICAgIFtDRVJlYWN0aW9ucywg
Q1NTUHJvcGVydHk9SW5saW5lU2l6ZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgLXdlYmtpdC1sb2dpY2FsLXdpZHRoOwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1NYXJnaW5CbG9ja0VuZF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1tYXJnaW4tYWZ0ZXI7CiAgICBbQ0VSZWFjdGlvbnMs
IENTU1Byb3BlcnR5PVdlYmtpdE1hcmdpbkFmdGVyQ29sbGFwc2VdIGF0dHJpYnV0ZSBbTGVnYWN5
TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtbWFyZ2luLWFmdGVyLWNvbGxh
cHNlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1NYXJnaW5CbG9ja1N0YXJ0XSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LW1hcmdp
bi1iZWZvcmU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdE1hcmdpbkJlZm9y
ZUNvbGxhcHNlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyAtd2Via2l0LW1hcmdpbi1iZWZvcmUtY29sbGFwc2U7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PVdlYmtpdE1hcmdpbkJvdHRvbUNvbGxhcHNlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LW1hcmdpbi1ib3R0b20tY29sbGFwc2U7
CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdE1hcmdpbkNvbGxhcHNlXSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LW1hcmdp
bi1jb2xsYXBzZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9TWFyZ2luSW5saW5lRW5k
XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0
LW1hcmdpbi1lbmQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PU1hcmdpbklubGluZVN0
YXJ0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Vi
a2l0LW1hcmdpbi1zdGFydDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0TWFy
Z2luVG9wQ29sbGFwc2VdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIC13ZWJraXQtbWFyZ2luLXRvcC1jb2xsYXBzZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9V2Via2l0TWFza10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgLXdlYmtpdC1tYXNrOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1X
ZWJraXRNYXNrQm94SW1hZ2VdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENT
U09NU3RyaW5nIC13ZWJraXQtbWFzay1ib3gtaW1hZ2U7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PVdlYmtpdE1hc2tCb3hJbWFnZU91dHNldF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1tYXNrLWJveC1pbWFnZS1vdXRzZXQ7CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdE1hc2tCb3hJbWFnZVJlcGVhdF0gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1tYXNr
LWJveC1pbWFnZS1yZXBlYXQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdE1h
c2tCb3hJbWFnZVNsaWNlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyAtd2Via2l0LW1hc2stYm94LWltYWdlLXNsaWNlOwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1XZWJraXRNYXNrQm94SW1hZ2VTb3VyY2VdIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtbWFzay1ib3gtaW1hZ2Utc291cmNl
OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRNYXNrQm94SW1hZ2VXaWR0aF0g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1t
YXNrLWJveC1pbWFnZS13aWR0aDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0
TWFza0NsaXBdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IC13ZWJraXQtbWFzay1jbGlwOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRN
YXNrQ29tcG9zaXRlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyAtd2Via2l0LW1hc2stY29tcG9zaXRlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1XZWJraXRNYXNrSW1hZ2VdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENT
U09NU3RyaW5nIC13ZWJraXQtbWFzay1pbWFnZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9V2Via2l0TWFza09yaWdpbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgLXdlYmtpdC1tYXNrLW9yaWdpbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9V2Via2l0TWFza1Bvc2l0aW9uXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LW1hc2stcG9zaXRpb247CiAgICBbQ0VSZWFjdGlvbnMs
IENTU1Byb3BlcnR5PVdlYmtpdE1hc2tQb3NpdGlvblhdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRv
RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtbWFzay1wb3NpdGlvbi14OwogICAgW0NF
UmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRNYXNrUG9zaXRpb25ZXSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LW1hc2stcG9zaXRpb24t
eTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0TWFza1JlcGVhdF0gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1tYXNrLXJl
cGVhdDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0TWFza1NpemVdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtbWFzay1z
aXplOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRNYXNrU291cmNlVHlwZV0g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1t
YXNrLXNvdXJjZS10eXBlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1NYXhCbG9ja1Np
emVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJr
aXQtbWF4LWxvZ2ljYWwtaGVpZ2h0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1NYXhJ
bmxpbmVTaXplXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyAtd2Via2l0LW1heC1sb2dpY2FsLXdpZHRoOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1NaW5CbG9ja1NpemVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIC13ZWJraXQtbWluLWxvZ2ljYWwtaGVpZ2h0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQ
cm9wZXJ0eT1NaW5JbmxpbmVTaXplXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZyAtd2Via2l0LW1pbi1sb2dpY2FsLXdpZHRoOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1XZWJraXROYnNwTW9kZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1uYnNwLW1vZGU7CiAgICBbQ0VSZWFjdGlvbnMs
IENTU1Byb3BlcnR5PU9wYWNpdHldIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIC13ZWJraXQtb3BhY2l0eTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9T3JkZXJdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IC13ZWJraXQtb3JkZXI7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVBhZGRpbmdCbG9j
a0VuZF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdl
YmtpdC1wYWRkaW5nLWFmdGVyOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1QYWRkaW5n
QmxvY2tTdGFydF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgLXdlYmtpdC1wYWRkaW5nLWJlZm9yZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
UGFkZGluZ0lubGluZUVuZF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgLXdlYmtpdC1wYWRkaW5nLWVuZDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9UGFkZGluZ0lubGluZVN0YXJ0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZyAtd2Via2l0LXBhZGRpbmctc3RhcnQ7CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PVBlcnNwZWN0aXZlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZyAtd2Via2l0LXBlcnNwZWN0aXZlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQ
cm9wZXJ0eT1QZXJzcGVjdGl2ZU9yaWdpbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1wZXJzcGVjdGl2ZS1vcmlnaW47CiAgICBbQ0VSZWFj
dGlvbnMsIENTU1Byb3BlcnR5PVBlcnNwZWN0aXZlT3JpZ2luWF0gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1wZXJzcGVjdGl2ZS1vcmlnaW4t
eDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9UGVyc3BlY3RpdmVPcmlnaW5ZXSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LXBlcnNw
ZWN0aXZlLW9yaWdpbi15OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRQcmlu
dENvbG9yQWRqdXN0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyAtd2Via2l0LXByaW50LWNvbG9yLWFkanVzdDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9V2Via2l0UnRsT3JkZXJpbmddIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIC13ZWJraXQtcnRsLW9yZGVyaW5nOwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1XZWJraXRSdWJ5UG9zaXRpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtcnVieS1wb3NpdGlvbjsKICAgIFtDRVJlYWN0
aW9ucywgQ1NTUHJvcGVydHk9U2hhcGVJbWFnZVRocmVzaG9sZF0gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC1zaGFwZS1pbWFnZS10aHJlc2hv
bGQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVNoYXBlTWFyZ2luXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LXNoYXBlLW1hcmdp
bjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9U2hhcGVPdXRzaWRlXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LXNoYXBlLW91dHNp
ZGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdFRleHRDb21iaW5lXSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LXRleHQt
Y29tYmluZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0VGV4dERlY29yYXRp
b25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJr
aXQtdGV4dC1kZWNvcmF0aW9uOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1UZXh0RGVj
b3JhdGlvbkNvbG9yXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1jb2xvcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9VGV4dERlY29yYXRpb25MaW5lXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1saW5lOwogICAgW0NF
UmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1UZXh0RGVjb3JhdGlvblNraXBdIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9u
LXNraXA7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRleHREZWNvcmF0aW9uU3R5bGVd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQt
dGV4dC1kZWNvcmF0aW9uLXN0eWxlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJr
aXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVjdF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC10ZXh0LWRlY29yYXRpb25zLWluLWVmZmVjdDsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0VGV4dEVtcGhhc2lzXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LXRleHQtZW1waGFz
aXM7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdFRleHRFbXBoYXNpc0NvbG9y
XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0
LXRleHQtZW1waGFzaXMtY29sb3I7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtp
dFRleHRFbXBoYXNpc1Bvc2l0aW9uXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZyAtd2Via2l0LXRleHQtZW1waGFzaXMtcG9zaXRpb247CiAgICBbQ0VSZWFj
dGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdFRleHRFbXBoYXNpc1N0eWxlXSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LXRleHQtZW1waGFzaXMt
c3R5bGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdFRleHRGaWxsQ29sb3Jd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQt
dGV4dC1maWxsLWNvbG9yOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRUZXh0
T3JpZW50YXRpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3Ry
aW5nIC13ZWJraXQtdGV4dC1vcmllbnRhdGlvbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9V2Via2l0VGV4dFNlY3VyaXR5XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZyAtd2Via2l0LXRleHQtc2VjdXJpdHk7CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PVdlYmtpdFRleHRTaXplQWRqdXN0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q7CiAgICBbQ0VS
ZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdFRleHRTdHJva2VdIGF0dHJpYnV0ZSBbTGVnYWN5
TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtdGV4dC1zdHJva2U7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdFRleHRTdHJva2VDb2xvcl0gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC10ZXh0LXN0cm9r
ZS1jb2xvcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0VGV4dFN0cm9rZVdp
ZHRoXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Vi
a2l0LXRleHQtc3Ryb2tlLXdpZHRoOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1UZXh0
VW5kZXJsaW5lUG9zaXRpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENT
U09NU3RyaW5nIC13ZWJraXQtdGV4dC11bmRlcmxpbmUtcG9zaXRpb247CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PVdlYmtpdFRleHRab29tXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LXRleHQtem9vbTsKICAgIFtDRVJlYWN0aW9u
cywgQ1NTUHJvcGVydHk9VHJhbnNmb3JtXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LXRyYW5zZm9ybTsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9VHJhbnNmb3JtT3JpZ2luXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW47CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PVRyYW5zZm9ybU9yaWdpblhdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRv
RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbi14OwogICAg
W0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1UcmFuc2Zvcm1PcmlnaW5ZXSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAtd2Via2l0LXRyYW5zZm9ybS1vcmln
aW4teTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9VHJhbnNmb3JtT3JpZ2luWl0gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC10cmFu
c2Zvcm0tb3JpZ2luLXo7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdFRyYW5z
Zm9ybVN0eWxlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyAtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
VHJhbnNpdGlvbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgLXdlYmtpdC10cmFuc2l0aW9uOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1UcmFu
c2l0aW9uRGVsYXldIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3Ry
aW5nIC13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9VHJhbnNpdGlvbkR1cmF0aW9uXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZyAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb247CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PVRyYW5zaXRpb25Qcm9wZXJ0eV0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5Owog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1UcmFuc2l0aW9uVGltaW5nRnVuY3Rpb25dIGF0
dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIC13ZWJraXQtdHJh
bnNpdGlvbi10aW1pbmctZnVuY3Rpb247CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdl
YmtpdFVzZXJEcmFnXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyAtd2Via2l0LXVzZXItZHJhZzsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Vi
a2l0VXNlck1vZGlmeV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01T
dHJpbmcgLXdlYmtpdC11c2VyLW1vZGlmeTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
V2Via2l0VXNlclNlbGVjdF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgLXdlYmtpdC11c2VyLXNlbGVjdDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9V3JpdGluZ01vZGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIC13ZWJraXQtd3JpdGluZy1tb2RlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1BbGlnbkNvbnRlbnRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIGFsaWduLWNvbnRlbnQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUFsaWdu
SXRlbXNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGFs
aWduLWl0ZW1zOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1BbGlnblNlbGZdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGFsaWduLXNlbGY7CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUFsaWdubWVudEJhc2VsaW5lXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBhbGlnbm1lbnQtYmFzZWxpbmU7
CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUFuaW1hdGlvbkRlbGF5XSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBhbmltYXRpb24tZGVsYXk7CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUFuaW1hdGlvbkRpcmVjdGlvbl0gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYW5pbWF0aW9uLWRpcmVjdGlv
bjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QW5pbWF0aW9uRHVyYXRpb25dIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGFuaW1hdGlvbi1kdXJh
dGlvbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QW5pbWF0aW9uRmlsbE1vZGVdIGF0
dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGFuaW1hdGlvbi1m
aWxsLW1vZGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUFuaW1hdGlvbkl0ZXJhdGlv
bkNvdW50XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBh
bmltYXRpb24taXRlcmF0aW9uLWNvdW50OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1B
bmltYXRpb25OYW1lXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyBhbmltYXRpb24tbmFtZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QW5pbWF0
aW9uUGxheVN0YXRlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyBhbmltYXRpb24tcGxheS1zdGF0ZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
QW5pbWF0aW9uVGltaW5nRnVuY3Rpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb247CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PUJhY2tncm91bmRBdHRhY2htZW50XSBhdHRyaWJ1dGUgW0xlZ2FjeU51
bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJhY2tncm91bmRCbGVuZE1vZGVdIGF0dHJpYnV0ZSBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGJhY2tncm91bmQtYmxlbmQtbW9k
ZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QmFja2dyb3VuZENsaXBdIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGJhY2tncm91bmQtY2xpcDsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QmFja2dyb3VuZENvbG9yXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBiYWNrZ3JvdW5kLWNvbG9yOwog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1CYWNrZ3JvdW5kSW1hZ2VdIGF0dHJpYnV0ZSBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGJhY2tncm91bmQtaW1hZ2U7CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJhY2tncm91bmRPcmlnaW5dIGF0dHJpYnV0ZSBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGJhY2tncm91bmQtb3JpZ2luOwog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1CYWNrZ3JvdW5kUG9zaXRpb25dIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGJhY2tncm91bmQtcG9zaXRp
b247CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJhY2tncm91bmRQb3NpdGlvblhdIGF0
dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGJhY2tncm91bmQt
cG9zaXRpb24teDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QmFja2dyb3VuZFBvc2l0
aW9uWV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYmFj
a2dyb3VuZC1wb3NpdGlvbi15OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1CYWNrZ3Jv
dW5kUmVwZWF0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyBiYWNrZ3JvdW5kLXJlcGVhdDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QmFja2dy
b3VuZFNpemVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IGJhY2tncm91bmQtc2l6ZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9QmFzZWxpbmVT
aGlmdF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYmFz
ZWxpbmUtc2hpZnQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJsb2NrU2l6ZV0gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYmxvY2stc2l6ZTsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyQmxvY2tdIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGJvcmRlci1ibG9jazsKICAgIFtDRVJl
YWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyQmxvY2tDb2xvcl0gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyLWJsb2NrLWNvbG9yOwogICAgW0NF
UmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJCbG9ja0VuZF0gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyLWJsb2NrLWVuZDsKICAgIFtDRVJl
YWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyQmxvY2tFbmRDb2xvcl0gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyLWJsb2NrLWVuZC1jb2xvcjsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyQmxvY2tFbmRTdHlsZV0gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyLWJsb2NrLWVu
ZC1zdHlsZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyQmxvY2tFbmRXaWR0
aF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVy
LWJsb2NrLWVuZC13aWR0aDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyQmxv
Y2tTdGFydF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
Ym9yZGVyLWJsb2NrLXN0YXJ0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJC
bG9ja1N0YXJ0Q29sb3JdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIGJvcmRlci1ibG9jay1zdGFydC1jb2xvcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9Qm9yZGVyQmxvY2tTdGFydFN0eWxlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXItYmxvY2stc3RhcnQtc3R5bGU7CiAgICBbQ0VSZWFj
dGlvbnMsIENTU1Byb3BlcnR5PUJvcmRlckJsb2NrU3RhcnRXaWR0aF0gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyLWJsb2NrLXN0YXJ0LXdpZHRo
OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJCbG9ja1N0eWxlXSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXItYmxvY2stc3R5
bGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJvcmRlckJsb2NrV2lkdGhdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGJvcmRlci1ibG9jay13
aWR0aDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyQm90dG9tXSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXItYm90dG9tOwog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJCb3R0b21Db2xvcl0gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyLWJvdHRvbS1jb2xv
cjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyQm90dG9tTGVmdFJhZGl1c10g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyLWJv
dHRvbS1sZWZ0LXJhZGl1czsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyQm90
dG9tUmlnaHRSYWRpdXNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQ
cm9wZXJ0eT1Cb3JkZXJCb3R0b21TdHlsZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyLWJvdHRvbS1zdHlsZTsKICAgIFtDRVJlYWN0aW9ucywg
Q1NTUHJvcGVydHk9Qm9yZGVyQm90dG9tV2lkdGhdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIGJvcmRlci1ib3R0b20td2lkdGg7CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PUJvcmRlckNvbGxhcHNlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXItY29sbGFwc2U7CiAgICBbQ0VSZWFjdGlvbnMs
IENTU1Byb3BlcnR5PUJvcmRlckNvbG9yXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyBib3JkZXItY29sb3I7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3Bl
cnR5PUJvcmRlckltYWdlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyBib3JkZXItaW1hZ2U7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJvcmRl
ckltYWdlT3V0c2V0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyBib3JkZXItaW1hZ2Utb3V0c2V0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1C
b3JkZXJJbWFnZVJlcGVhdF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgYm9yZGVyLWltYWdlLXJlcGVhdDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9Qm9yZGVySW1hZ2VTbGljZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgYm9yZGVyLWltYWdlLXNsaWNlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1Cb3JkZXJJbWFnZVNvdXJjZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgYm9yZGVyLWltYWdlLXNvdXJjZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9Qm9yZGVySW1hZ2VXaWR0aF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyLWltYWdlLXdpZHRoOwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1Cb3JkZXJJbmxpbmVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIGJvcmRlci1pbmxpbmU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3Bl
cnR5PUJvcmRlcklubGluZUNvbG9yXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZyBib3JkZXItaW5saW5lLWNvbG9yOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQ
cm9wZXJ0eT1Cb3JkZXJJbmxpbmVFbmRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIGJvcmRlci1pbmxpbmUtZW5kOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQ
cm9wZXJ0eT1Cb3JkZXJJbmxpbmVFbmRDb2xvcl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyLWlubGluZS1lbmQtY29sb3I7CiAgICBbQ0VSZWFj
dGlvbnMsIENTU1Byb3BlcnR5PUJvcmRlcklubGluZUVuZFN0eWxlXSBhdHRyaWJ1dGUgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXItaW5saW5lLWVuZC1zdHlsZTsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVySW5saW5lRW5kV2lkdGhdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGJvcmRlci1pbmxpbmUt
ZW5kLXdpZHRoOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJJbmxpbmVTdGFy
dF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVy
LWlubGluZS1zdGFydDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVySW5saW5l
U3RhcnRDb2xvcl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgYm9yZGVyLWlubGluZS1zdGFydC1jb2xvcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9Qm9yZGVySW5saW5lU3RhcnRTdHlsZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyLWlubGluZS1zdGFydC1zdHlsZTsKICAgIFtDRVJlYWN0
aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVySW5saW5lU3RhcnRXaWR0aF0gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyLWlubGluZS1zdGFydC13aWR0
aDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVySW5saW5lU3R5bGVdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGJvcmRlci1pbmxpbmUt
c3R5bGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJvcmRlcklubGluZVdpZHRoXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXItaW5s
aW5lLXdpZHRoOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJMZWZ0XSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXItbGVmdDsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyTGVmdENvbG9yXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXItbGVmdC1jb2xvcjsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyTGVmdFN0eWxlXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXItbGVmdC1zdHlsZTsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyTGVmdFdpZHRoXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXItbGVmdC13aWR0aDsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyUmFkaXVzXSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXItcmFkaXVzOwogICAgW0NF
UmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJSaWdodF0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyLXJpZ2h0OwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1Cb3JkZXJSaWdodENvbG9yXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXItcmlnaHQtY29sb3I7CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PUJvcmRlclJpZ2h0U3R5bGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRv
RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGJvcmRlci1yaWdodC1zdHlsZTsKICAgIFtDRVJlYWN0
aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyUmlnaHRXaWR0aF0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyLXJpZ2h0LXdpZHRoOwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJTcGFjaW5nXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3JkZXItc3BhY2luZzsKICAgIFtDRVJlYWN0aW9u
cywgQ1NTUHJvcGVydHk9Qm9yZGVyU3R5bGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlT
dHJpbmddIENTU09NU3RyaW5nIGJvcmRlci1zdHlsZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9Qm9yZGVyVG9wXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyBib3JkZXItdG9wOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Cb3JkZXJU
b3BDb2xvcl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
Ym9yZGVyLXRvcC1jb2xvcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm9yZGVyVG9w
TGVmdFJhZGl1c10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
Qm9yZGVyVG9wUmlnaHRSYWRpdXNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1Cb3JkZXJUb3BTdHlsZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgYm9yZGVyLXRvcC1zdHlsZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9Qm9yZGVyVG9wV2lkdGhdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIGJvcmRlci10b3Atd2lkdGg7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PUJvcmRlcldpZHRoXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyBib3JkZXItd2lkdGg7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUJv
eFNoYWRvd10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
Ym94LXNoYWRvdzsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Qm94U2l6aW5nXSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBib3gtc2l6aW5nOwog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1CcmVha0FmdGVyXSBhdHRyaWJ1dGUgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBicmVhay1hZnRlcjsKICAgIFtDRVJlYWN0
aW9ucywgQ1NTUHJvcGVydHk9QnJlYWtCZWZvcmVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIGJyZWFrLWJlZm9yZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9QnJlYWtJbnNpZGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIGJyZWFrLWluc2lkZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
QnVmZmVyZWRSZW5kZXJpbmddIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENT
U09NU3RyaW5nIGJ1ZmZlcmVkLXJlbmRlcmluZzsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9Q2FwdGlvblNpZGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIGNhcHRpb24tc2lkZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Q2FyZXRD
b2xvcl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgY2Fy
ZXQtY29sb3I7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNsaXBQYXRoXSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBjbGlwLXBhdGg7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNsaXBSdWxlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBjbGlwLXJ1bGU7CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PUNvbG9ySW50ZXJwb2xhdGlvbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gQ1NTT01TdHJpbmcgY29sb3ItaW50ZXJwb2xhdGlvbjsKICAgIFtDRVJlYWN0aW9u
cywgQ1NTUHJvcGVydHk9Q29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyc10gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0
ZXJzOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Db2xvclByb2ZpbGVdIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGNvbG9yLXByb2ZpbGU7CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNvbG9yUmVuZGVyaW5nXSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBjb2xvci1yZW5kZXJpbmc7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNvbG9yU2NoZW1lXSBhdHRyaWJ1dGUgW0xlZ2FjeU51
bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBjb2xvci1zY2hlbWU7CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PUNvbHVtbkNvdW50XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyBjb2x1bW4tY291bnQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PUNvbHVtbkZpbGxdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENT
U09NU3RyaW5nIGNvbHVtbi1maWxsOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Db2x1
bW5HYXBdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGNv
bHVtbi1nYXA7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNvbHVtblJ1bGVdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGNvbHVtbi1ydWxlOwog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Db2x1bW5SdWxlQ29sb3JdIGF0dHJpYnV0ZSBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGNvbHVtbi1ydWxlLWNvbG9yOwog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Db2x1bW5SdWxlU3R5bGVdIGF0dHJpYnV0ZSBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGNvbHVtbi1ydWxlLXN0eWxlOwog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Db2x1bW5SdWxlV2lkdGhdIGF0dHJpYnV0ZSBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGNvbHVtbi1ydWxlLXdpZHRoOwog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Db2x1bW5TcGFuXSBhdHRyaWJ1dGUgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBjb2x1bW4tc3BhbjsKICAgIFtDRVJlYWN0
aW9ucywgQ1NTUHJvcGVydHk9Q29sdW1uV2lkdGhdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIGNvbHVtbi13aWR0aDsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9Q291bnRlckluY3JlbWVudF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgY291bnRlci1pbmNyZW1lbnQ7CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PUNvdW50ZXJSZXNldF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgY291bnRlci1yZXNldDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9RG9taW5hbnRCYXNlbGluZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgZG9taW5hbnQtYmFzZWxpbmU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3Bl
cnR5PUVtcHR5Q2VsbHNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIGVtcHR5LWNlbGxzOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1FbmFibGVC
YWNrZ3JvdW5kXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyBlbmFibGUtYmFja2dyb3VuZDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9RmlsbE9w
YWNpdHldIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGZp
bGwtb3BhY2l0eTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9RmlsbFJ1bGVdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGZpbGwtcnVsZTsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9RmxleEJhc2lzXSBhdHRyaWJ1dGUgW0xlZ2FjeU51
bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBmbGV4LWJhc2lzOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1GbGV4RGlyZWN0aW9uXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyBmbGV4LWRpcmVjdGlvbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9RmxleEZsb3ddIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENT
U09NU3RyaW5nIGZsZXgtZmxvdzsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9RmxleEdy
b3ddIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGZsZXgt
Z3JvdzsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9RmxleFNocmlua10gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZmxleC1zaHJpbms7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZsZXhXcmFwXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBmbGV4LXdyYXA7CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PUZsb29kQ29sb3JdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIGZsb29kLWNvbG9yOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1G
bG9vZE9wYWNpdHldIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3Ry
aW5nIGZsb29kLW9wYWNpdHk7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZvbnREaXNw
bGF5XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBmb250
LWRpc3BsYXk7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZvbnRGYW1pbHldIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGZvbnQtZmFtaWx5Owog
ICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Gb250RmVhdHVyZVNldHRpbmdzXSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBmb250LWZlYXR1cmUtc2V0
dGluZ3M7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdlYmtpdEZvbnRLZXJuaW5nXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBmb250LWtlcm5p
bmc7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZvbnRPcHRpY2FsU2l6aW5nXSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBmb250LW9wdGljYWwt
c2l6aW5nOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Gb250U2l6ZV0gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZm9udC1zaXplOwogICAgW0NF
UmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Gb250U3RyZXRjaF0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZm9udC1zdHJldGNoOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1Gb250U3R5bGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIGZvbnQtc3R5bGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5
PUZvbnRTeW50aGVzaXNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIGZvbnQtc3ludGhlc2lzOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Gb250
VmFyaWFudF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
Zm9udC12YXJpYW50OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Gb250VmFyaWFudEFs
dGVybmF0ZXNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IGZvbnQtdmFyaWFudC1hbHRlcm5hdGVzOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1G
b250VmFyaWFudENhcHNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIGZvbnQtdmFyaWFudC1jYXBzOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1G
b250VmFyaWFudEVhc3RBc2lhbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgZm9udC12YXJpYW50LWVhc3QtYXNpYW47CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PUZvbnRWYXJpYW50TGlnYXR1cmVzXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyBmb250LXZhcmlhbnQtbGlnYXR1cmVzOwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1Gb250VmFyaWFudE51bWVyaWNdIGF0dHJpYnV0ZSBbTGVnYWN5
TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGZvbnQtdmFyaWFudC1udW1lcmljOwogICAg
W0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Gb250VmFyaWFudFBvc2l0aW9uXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBmb250LXZhcmlhbnQtcG9zaXRp
b247CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZvbnRWYXJpYXRpb25TZXR0aW5nc10g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZm9udC12YXJp
YXRpb24tc2V0dGluZ3M7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUZvbnRXZWlnaHRd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGZvbnQtd2Vp
Z2h0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1HbHlwaE9yaWVudGF0aW9uSG9yaXpv
bnRhbF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZ2x5
cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
R2x5cGhPcmllbnRhdGlvblZlcnRpY2FsXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyBnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbDsKICAgIFtDRVJlYWN0
aW9ucywgQ1NTUHJvcGVydHk9R3JpZEFyZWFdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlT
dHJpbmddIENTU09NU3RyaW5nIGdyaWQtYXJlYTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9R3JpZEF1dG9Db2x1bW5zXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyBncmlkLWF1dG8tY29sdW1uczsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9R3JpZEF1dG9GbG93XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyBncmlkLWF1dG8tZmxvdzsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9R3Jp
ZEF1dG9Sb3dzXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyBncmlkLWF1dG8tcm93czsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9R3JpZENvbHVt
bl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZ3JpZC1j
b2x1bW47CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUdyaWRDb2x1bW5FbmRdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGdyaWQtY29sdW1uLWVu
ZDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Q29sdW1uR2FwXSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBncmlkLWNvbHVtbi1nYXA7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUdyaWRDb2x1bW5TdGFydF0gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZ3JpZC1jb2x1bW4tc3RhcnQ7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUdhcF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gQ1NTT01TdHJpbmcgZ3JpZC1nYXA7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3Bl
cnR5PUdyaWRSb3ddIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3Ry
aW5nIGdyaWQtcm93OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1HcmlkUm93RW5kXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBncmlkLXJvdy1l
bmQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVJvd0dhcF0gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgZ3JpZC1yb3ctZ2FwOwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1HcmlkUm93U3RhcnRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRv
RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGdyaWQtcm93LXN0YXJ0OwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1HcmlkVGVtcGxhdGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlT
dHJpbmddIENTU09NU3RyaW5nIGdyaWQtdGVtcGxhdGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PUdyaWRUZW1wbGF0ZUFyZWFzXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyBncmlkLXRlbXBsYXRlLWFyZWFzOwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1HcmlkVGVtcGxhdGVDb2x1bW5zXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyBncmlkLXRlbXBsYXRlLWNvbHVtbnM7CiAgICBbQ0VSZWFj
dGlvbnMsIENTU1Byb3BlcnR5PUdyaWRUZW1wbGF0ZVJvd3NdIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGdyaWQtdGVtcGxhdGUtcm93czsKICAgIFtDRVJl
YWN0aW9ucywgQ1NTUHJvcGVydHk9SGFuZ2luZ1B1bmN0dWF0aW9uXSBhdHRyaWJ1dGUgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBoYW5naW5nLXB1bmN0dWF0aW9uOwogICAg
W0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1JbWFnZU9yaWVudGF0aW9uXSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBpbWFnZS1vcmllbnRhdGlvbjsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9SW1hZ2VSZW5kZXJpbmddIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGltYWdlLXJlbmRlcmluZzsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9SW5saW5lU2l6ZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgaW5saW5lLXNpemU7CiAgICBbQ0VSZWFjdGlvbnMs
IENTU1Byb3BlcnR5PUluc2V0QmxvY2tdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIGluc2V0LWJsb2NrOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1JbnNldEJsb2NrRW5kXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyBpbnNldC1ibG9jay1lbmQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUlu
c2V0QmxvY2tTdGFydF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01T
dHJpbmcgaW5zZXQtYmxvY2stc3RhcnQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUlu
c2V0SW5saW5lXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyBpbnNldC1pbmxpbmU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUluc2V0SW5saW5l
RW5kXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBpbnNl
dC1pbmxpbmUtZW5kOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1JbnNldElubGluZVN0
YXJ0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBpbnNl
dC1pbmxpbmUtc3RhcnQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUp1c3RpZnlDb250
ZW50XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBqdXN0
aWZ5LWNvbnRlbnQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUp1c3RpZnlJdGVtc10g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcganVzdGlmeS1p
dGVtczsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9SnVzdGlmeVNlbGZdIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGp1c3RpZnktc2VsZjsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9TGV0dGVyU3BhY2luZ10gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbGV0dGVyLXNwYWNpbmc7CiAgICBbQ0VS
ZWFjdGlvbnMsIENTU1Byb3BlcnR5PUxpZ2h0aW5nQ29sb3JdIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGxpZ2h0aW5nLWNvbG9yOwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1MaW5lQnJlYWtdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlT
dHJpbmddIENTU09NU3RyaW5nIGxpbmUtYnJlYWs7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3Bl
cnR5PUxpbmVIZWlnaHRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIGxpbmUtaGVpZ2h0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1MaXN0U3R5
bGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGxpc3Qt
c3R5bGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUxpc3RTdHlsZUltYWdlXSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBsaXN0LXN0eWxlLWlt
YWdlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1MaXN0U3R5bGVQb3NpdGlvbl0gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbGlzdC1zdHlsZS1w
b3NpdGlvbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9TGlzdFN0eWxlVHlwZV0gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbGlzdC1zdHlsZS10
eXBlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1NYXJnaW5CbG9ja10gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbWFyZ2luLWJsb2NrOwogICAg
W0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1NYXJnaW5CbG9ja0VuZF0gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbWFyZ2luLWJsb2NrLWVuZDsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9TWFyZ2luQmxvY2tTdGFydF0gYXR0cmlidXRlIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbWFyZ2luLWJsb2NrLXN0YXJ0OwogICAg
W0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1NYXJnaW5Cb3R0b21dIGF0dHJpYnV0ZSBbTGVnYWN5
TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIG1hcmdpbi1ib3R0b207CiAgICBbQ0VSZWFj
dGlvbnMsIENTU1Byb3BlcnR5PU1hcmdpbklubGluZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbWFyZ2luLWlubGluZTsKICAgIFtDRVJlYWN0aW9ucywg
Q1NTUHJvcGVydHk9TWFyZ2luSW5saW5lRW5kXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyBtYXJnaW4taW5saW5lLWVuZDsKICAgIFtDRVJlYWN0aW9ucywg
Q1NTUHJvcGVydHk9TWFyZ2luSW5saW5lU3RhcnRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIG1hcmdpbi1pbmxpbmUtc3RhcnQ7CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PU1hcmdpbkxlZnRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlT
dHJpbmddIENTU09NU3RyaW5nIG1hcmdpbi1sZWZ0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1NYXJnaW5SaWdodF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgbWFyZ2luLXJpZ2h0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1NYXJn
aW5Ub3BdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIG1h
cmdpbi10b3A7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PU1hcmtlckVuZF0gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbWFya2VyLWVuZDsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9TWFya2VyTWlkXSBhdHRyaWJ1dGUgW0xlZ2FjeU51
bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBtYXJrZXItbWlkOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1NYXJrZXJTdGFydF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgbWFya2VyLXN0YXJ0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9w
ZXJ0eT1NYXNrVHlwZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01T
dHJpbmcgbWFzay10eXBlOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1NYXRoU3R5bGVd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIG1hdGgtc3R5
bGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PU1heEJsb2NrU2l6ZV0gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbWF4LWJsb2NrLXNpemU7CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PU1heEhlaWdodF0gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgbWF4LWhlaWdodDsKICAgIFtDRVJlYWN0aW9u
cywgQ1NTUHJvcGVydHk9TWF4SW5saW5lU2l6ZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gQ1NTT01TdHJpbmcgbWF4LWlubGluZS1zaXplOwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1NYXhXaWR0aF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgbWF4LXdpZHRoOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1NaW5C
bG9ja1NpemVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IG1pbi1ibG9jay1zaXplOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1NaW5IZWlnaHRd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIG1pbi1oZWln
aHQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PU1pbklubGluZVNpemVdIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIG1pbi1pbmxpbmUtc2l6ZTsK
ICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9TWluV2lkdGhdIGF0dHJpYnV0ZSBbTGVnYWN5
TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIG1pbi13aWR0aDsKICAgIFtDRVJlYWN0aW9u
cywgQ1NTUHJvcGVydHk9TWl4QmxlbmRNb2RlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyBtaXgtYmxlbmQtbW9kZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9T2JqZWN0Rml0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyBvYmplY3QtZml0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1PYmpl
Y3RQb3NpdGlvbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgb2JqZWN0LXBvc2l0aW9uOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1PdXRsaW5l
Q29sb3JdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIG91
dGxpbmUtY29sb3I7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PU91dGxpbmVPZmZzZXRd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIG91dGxpbmUt
b2Zmc2V0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1PdXRsaW5lU3R5bGVdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIG91dGxpbmUtc3R5bGU7
CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PU91dGxpbmVXaWR0aF0gYXR0cmlidXRlIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgb3V0bGluZS13aWR0aDsKICAgIFtD
RVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9T3ZlcmZsb3dXcmFwXSBhdHRyaWJ1dGUgW0xlZ2FjeU51
bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBvdmVyZmxvdy13cmFwOwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1PdmVyZmxvd1hdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlT
dHJpbmddIENTU09NU3RyaW5nIG92ZXJmbG93LXg7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3Bl
cnR5PU92ZXJmbG93WV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01T
dHJpbmcgb3ZlcmZsb3cteTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9UGFkZGluZ0Js
b2NrXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBwYWRk
aW5nLWJsb2NrOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1QYWRkaW5nQmxvY2tFbmRd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHBhZGRpbmct
YmxvY2stZW5kOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1QYWRkaW5nQmxvY2tTdGFy
dF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgcGFkZGlu
Zy1ibG9jay1zdGFydDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9UGFkZGluZ0JvdHRv
bV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgcGFkZGlu
Zy1ib3R0b207CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVBhZGRpbmdJbmxpbmVdIGF0
dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHBhZGRpbmctaW5s
aW5lOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1QYWRkaW5nSW5saW5lRW5kXSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBwYWRkaW5nLWlubGlu
ZS1lbmQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVBhZGRpbmdJbmxpbmVTdGFydF0g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgcGFkZGluZy1p
bmxpbmUtc3RhcnQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVBhZGRpbmdMZWZ0XSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBwYWRkaW5nLWxl
ZnQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVBhZGRpbmdSaWdodF0gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgcGFkZGluZy1yaWdodDsKICAg
IFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9UGFkZGluZ1RvcF0gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgcGFkZGluZy10b3A7CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PVBhZ2VCcmVha0FmdGVyXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyBwYWdlLWJyZWFrLWFmdGVyOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1QYWdlQnJlYWtCZWZvcmVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIHBhZ2UtYnJlYWstYmVmb3JlOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1QYWdlQnJlYWtJbnNpZGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nIHBhZ2UtYnJlYWstaW5zaWRlOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1QYWludE9yZGVyXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyBwYWludC1vcmRlcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9UGVyc3BlY3RpdmVPcmlnaW5dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIHBlcnNwZWN0aXZlLW9yaWdpbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9UGVyc3BlY3RpdmVPcmlnaW5YXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyBwZXJzcGVjdGl2ZS1vcmlnaW4teDsKICAgIFtDRVJlYWN0aW9ucywg
Q1NTUHJvcGVydHk9UGVyc3BlY3RpdmVPcmlnaW5ZXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyBwZXJzcGVjdGl2ZS1vcmlnaW4teTsKICAgIFtDRVJlYWN0
aW9ucywgQ1NTUHJvcGVydHk9UGxhY2VDb250ZW50XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyBwbGFjZS1jb250ZW50OwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1QbGFjZUl0ZW1zXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZyBwbGFjZS1pdGVtczsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
UGxhY2VTZWxmXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyBwbGFjZS1zZWxmOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1Qb2ludGVyRXZlbnRz
XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBwb2ludGVy
LWV2ZW50czsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9Um93R2FwXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyByb3ctZ2FwOwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1TY3JvbGxCZWhhdmlvciwgRW5hYmxlZEJ5U2V0dGluZz1DU1NP
TVZpZXdTbW9vdGhTY3JvbGxpbmddIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIHNjcm9sbC1iZWhhdmlvcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9U2Nyb2xsUGFkZGluZ10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgc2Nyb2xsLXBhZGRpbmc7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVNj
cm9sbFBhZGRpbmdCb3R0b21dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENT
U09NU3RyaW5nIHNjcm9sbC1wYWRkaW5nLWJvdHRvbTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9U2Nyb2xsUGFkZGluZ0xlZnRdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIHNjcm9sbC1wYWRkaW5nLWxlZnQ7CiAgICBbQ0VSZWFjdGlvbnMsIENT
U1Byb3BlcnR5PVNjcm9sbFBhZGRpbmdSaWdodF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gQ1NTT01TdHJpbmcgc2Nyb2xsLXBhZGRpbmctcmlnaHQ7CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PVNjcm9sbFBhZGRpbmdUb3BdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRv
RW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHNjcm9sbC1wYWRkaW5nLXRvcDsKICAgIFtDRVJlYWN0
aW9ucywgQ1NTUHJvcGVydHk9U2Nyb2xsU25hcEFsaWduXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBzY3JvbGwtc25hcC1hbGlnbjsKICAgIFtDRVJlYWN0
aW9ucywgQ1NTUHJvcGVydHk9U2Nyb2xsU25hcE1hcmdpbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgc2Nyb2xsLXNuYXAtbWFyZ2luOwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1TY3JvbGxTbmFwTWFyZ2luQm90dG9tXSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBzY3JvbGwtc25hcC1tYXJnaW4tYm90
dG9tOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1TY3JvbGxTbmFwTWFyZ2luTGVmdF0g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgc2Nyb2xsLXNu
YXAtbWFyZ2luLWxlZnQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVNjcm9sbFNuYXBN
YXJnaW5SaWdodF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgc2Nyb2xsLXNuYXAtbWFyZ2luLXJpZ2h0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1TY3JvbGxTbmFwTWFyZ2luVG9wXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZyBzY3JvbGwtc25hcC1tYXJnaW4tdG9wOwogICAgW0NFUmVhY3Rpb25zLCBD
U1NQcm9wZXJ0eT1TY3JvbGxTbmFwVHlwZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgc2Nyb2xsLXNuYXAtdHlwZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NT
UHJvcGVydHk9U2hhcGVJbWFnZVRocmVzaG9sZF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gQ1NTT01TdHJpbmcgc2hhcGUtaW1hZ2UtdGhyZXNob2xkOwogICAgW0NFUmVhY3Rp
b25zLCBDU1NQcm9wZXJ0eT1TaGFwZU1hcmdpbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gQ1NTT01TdHJpbmcgc2hhcGUtbWFyZ2luOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQ
cm9wZXJ0eT1TaGFwZU91dHNpZGVdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIHNoYXBlLW91dHNpZGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5
PVNoYXBlUmVuZGVyaW5nXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyBzaGFwZS1yZW5kZXJpbmc7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVNw
ZWFrQXNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHNw
ZWFrLWFzOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1TdG9wQ29sb3JdIGF0dHJpYnV0
ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHN0b3AtY29sb3I7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVN0b3BPcGFjaXR5XSBhdHRyaWJ1dGUgW0xlZ2FjeU51
bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBzdG9wLW9wYWNpdHk7CiAgICBbQ0VSZWFjdGlv
bnMsIENTU1Byb3BlcnR5PVN0cm9rZUNvbG9yXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyBzdHJva2UtY29sb3I7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PVN0cm9rZURhc2hhcnJheV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgc3Ryb2tlLWRhc2hhcnJheTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9U3Ryb2tlRGFzaG9mZnNldF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgc3Ryb2tlLWRhc2hvZmZzZXQ7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PVN0cm9rZUxpbmVjYXBdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIHN0cm9rZS1saW5lY2FwOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1TdHJva2VMaW5lam9pbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgc3Ryb2tlLWxpbmVqb2luOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1T
dHJva2VNaXRlcmxpbWl0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZyBzdHJva2UtbWl0ZXJsaW1pdDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
U3Ryb2tlT3BhY2l0eV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01T
dHJpbmcgc3Ryb2tlLW9wYWNpdHk7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVN0cm9r
ZVdpZHRoXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBz
dHJva2Utd2lkdGg7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PUNvbG9yU2NoZW1lXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBzdXBwb3J0ZWQt
Y29sb3Itc2NoZW1lczsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9VGFiU2l6ZV0gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgdGFiLXNpemU7CiAg
ICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRhYmxlTGF5b3V0XSBhdHRyaWJ1dGUgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB0YWJsZS1sYXlvdXQ7CiAgICBbQ0VSZWFj
dGlvbnMsIENTU1Byb3BlcnR5PVRleHRBbGlnbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gQ1NTT01TdHJpbmcgdGV4dC1hbGlnbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9VGV4dEFuY2hvcl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NT
T01TdHJpbmcgdGV4dC1hbmNob3I7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRleHRE
ZWNvcmF0aW9uXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmlu
ZyB0ZXh0LWRlY29yYXRpb247CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRleHREZWNv
cmF0aW9uQ29sb3JdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3Ry
aW5nIHRleHQtZGVjb3JhdGlvbi1jb2xvcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9
VGV4dERlY29yYXRpb25MaW5lXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyB0ZXh0LWRlY29yYXRpb24tbGluZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJv
cGVydHk9VGV4dERlY29yYXRpb25Ta2lwXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyB0ZXh0LWRlY29yYXRpb24tc2tpcDsKICAgIFtDRVJlYWN0aW9ucywg
Q1NTUHJvcGVydHk9VGV4dERlY29yYXRpb25TdHlsZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOwogICAgW0NFUmVh
Y3Rpb25zLCBDU1NQcm9wZXJ0eT1UZXh0RGVjb3JhdGlvblRoaWNrbmVzc10gYXR0cmlidXRlIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgdGV4dC1kZWNvcmF0aW9uLXRoaWNr
bmVzczsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0VGV4dEVtcGhhc2lzXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB0ZXh0LWVtcGhh
c2lzOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1XZWJraXRUZXh0RW1waGFzaXNDb2xv
cl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgdGV4dC1l
bXBoYXNpcy1jb2xvcjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2Via2l0VGV4dEVt
cGhhc2lzUG9zaXRpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIHRleHQtZW1waGFzaXMtcG9zaXRpb247CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3Bl
cnR5PVdlYmtpdFRleHRFbXBoYXNpc1N0eWxlXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyB0ZXh0LWVtcGhhc2lzLXN0eWxlOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1UZXh0SW5kZW50XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyB0ZXh0LWluZGVudDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVy
dHk9VGV4dE9yaWVudGF0aW9uXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyB0ZXh0LW9yaWVudGF0aW9uOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0
eT1UZXh0T3ZlcmZsb3ddIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nIHRleHQtb3ZlcmZsb3c7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRleHRS
ZW5kZXJpbmddIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IHRleHQtcmVuZGVyaW5nOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1UZXh0U2hhZG93
XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB0ZXh0LXNo
YWRvdzsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9VGV4dFRyYW5zZm9ybV0gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgdGV4dC10cmFuc2Zvcm07
CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRleHRVbmRlcmxpbmVPZmZzZXRdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHRleHQtdW5kZXJsaW5l
LW9mZnNldDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9VGV4dFVuZGVybGluZVBvc2l0
aW9uXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB0ZXh0
LXVuZGVybGluZS1wb3NpdGlvbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9VG91Y2hB
Y3Rpb25dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHRv
dWNoLWFjdGlvbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9VHJhbnNmb3JtQm94XSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB0cmFuc2Zvcm0t
Ym94OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1UcmFuc2Zvcm1PcmlnaW5dIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHRyYW5zZm9ybS1vcmln
aW47CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRyYW5zZm9ybU9yaWdpblhdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHRyYW5zZm9ybS1vcmln
aW4teDsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9VHJhbnNmb3JtT3JpZ2luWV0gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgdHJhbnNmb3JtLW9y
aWdpbi15OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1UcmFuc2Zvcm1PcmlnaW5aXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB0cmFuc2Zvcm0t
b3JpZ2luLXo7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRyYW5zZm9ybVN0eWxlXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB0cmFuc2Zvcm0t
c3R5bGU7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRyYW5zaXRpb25EZWxheV0gYXR0
cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgdHJhbnNpdGlvbi1k
ZWxheTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9VHJhbnNpdGlvbkR1cmF0aW9uXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB0cmFuc2l0aW9u
LWR1cmF0aW9uOwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1UcmFuc2l0aW9uUHJvcGVy
dHldIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHRyYW5z
aXRpb24tcHJvcGVydHk7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVRyYW5zaXRpb25U
aW1pbmdGdW5jdGlvbl0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01T
dHJpbmcgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb247CiAgICBbQ0VSZWFjdGlvbnMsIENTU1By
b3BlcnR5PVVuaWNvZGVCaWRpXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyB1bmljb2RlLWJpZGk7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVVu
aWNvZGVSYW5nZV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgdW5pY29kZS1yYW5nZTsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9VmVjdG9yRWZm
ZWN0XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB2ZWN0
b3ItZWZmZWN0OwogICAgW0NFUmVhY3Rpb25zLCBDU1NQcm9wZXJ0eT1WZXJ0aWNhbEFsaWduXSBh
dHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB2ZXJ0aWNhbC1h
bGlnbjsKICAgIFtDRVJlYWN0aW9ucywgQ1NTUHJvcGVydHk9V2hpdGVTcGFjZV0gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgd2hpdGUtc3BhY2U7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdpbGxDaGFuZ2VdIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHdpbGwtY2hhbmdlOwogICAgW0NFUmVhY3Rpb25z
LCBDU1NQcm9wZXJ0eT1Xb3JkQnJlYWtdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIHdvcmQtYnJlYWs7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5
PVdvcmRTcGFjaW5nXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyB3b3JkLXNwYWNpbmc7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdvcmRXcmFw
XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3b3JkLXdy
YXA7CiAgICBbQ0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVdyaXRpbmdNb2RlXSBhdHRyaWJ1dGUg
W0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB3cml0aW5nLW1vZGU7CiAgICBb
Q0VSZWFjdGlvbnMsIENTU1Byb3BlcnR5PVpJbmRleF0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgei1pbmRleDsKfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411395</attachid>
            <date>2020-10-14 19:30:33 -0700</date>
            <delta_ts>2020-10-15 10:00:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217623-20201014193032.patch</filename>
            <type>text/plain</type>
            <size>35425</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2ODUwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDIwLTEwLTEzICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIGJy
ZWFrcyBKUyBzcGVjIChwcm9wZXJ0aWVzIG5vdCBzaG93aW5nIHVwIGluIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eU5hbWVzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE3NjIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW1dJUF0KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG06CisgICAgICAgIChHZW5lcmF0ZUF0dHJpYnV0ZUdldHRlckJvZHlEZWZpbml0aW9uKToK
KyAgICAgICAgKEdlbmVyYXRlQXR0cmlidXRlU2V0dGVyQm9keURlZmluaXRpb24pOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uOgorICAgICAgICAqIGNzcy9D
U1NTdHlsZURlY2xhcmF0aW9uLmlkbDoKKyAgICAgICAgKiBjc3MvbWFrZXByb3AucGw6CisgICAg
ICAgIChjc3NQcm9wZXJ0eVRvSURMQXR0cmlidXRlKToKKwogMjAyMC0xMC0xNCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFZlY3Rvcml6ZSBkb3dubWl4aW5nIGlu
IEF1ZGlvQnVzOjpjcmVhdGVCeU1peGluZ1RvTW9ubygpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAkocmV2aXNpb24gMjY4NTA1KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTE4NzksNyArMTg3OSw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09V
UkNFUyAke1dlYkNvcmVfREUKIAogIyBHZW5lcmF0ZSBDU1MgcHJvcGVydHkgbmFtZXMKIGFkZF9j
dXN0b21fY29tbWFuZCgKLSAgICBPVVRQVVQgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9
L0NTU1Byb3BlcnRpZXMuanNvbiAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJv
cGVydHlOYW1lcy5oICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5h
bWVzLmNwcCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5n
cGVyZiAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVCdWlsZGVyR2VuZXJhdGVk
LmNwcCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVQcm9wZXJ0eVNob3J0aGFu
ZEZ1bmN0aW9ucy5oICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZVByb3BlcnR5
U2hvcnRoYW5kRnVuY3Rpb25zLmNwcAorICAgIE9VVFBVVCAke1dlYkNvcmVfREVSSVZFRF9TT1VS
Q0VTX0RJUn0vQ1NTUHJvcGVydGllcy5qc29uICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElS
fS9DU1NQcm9wZXJ0eU5hbWVzLmggJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1By
b3BlcnR5TmFtZXMuY3BwICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0
eU5hbWVzLmdwZXJmICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZUJ1aWxkZXJH
ZW5lcmF0ZWQuY3BwICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZVByb3BlcnR5
U2hvcnRoYW5kRnVuY3Rpb25zLmggJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0eWxl
UHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNf
RElSfS9DU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsCiAgICAgTUFJTl9ERVBF
TkRFTkNZICR7V0VCQ09SRV9ESVJ9L2Nzcy9tYWtlcHJvcC5wbAogICAgIERFUEVORFMgJHtXZWJD
b3JlX0NTU19QUk9QRVJUWV9OQU1FU30KICAgICBXT1JLSU5HX0RJUkVDVE9SWSAke1dlYkNvcmVf
REVSSVZFRF9TT1VSQ0VTX0RJUn0KQEAgLTE4ODksNiArMTg4OSw3IEBAIGFkZF9jdXN0b21fY29t
bWFuZCgKIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke1dlYkNvcmVfREVSSVZFRF9TT1VS
Q0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5jcHApCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJD
RVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0eWxlQnVpbGRlckdlbmVyYXRlZC5j
cHApCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNF
U19ESVJ9L1N0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwKQorbGlzdChBUFBFTkQg
V2ViQ29yZV9JRExfRklMRVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1N0eWxl
RGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5pZGwpCiBBRERfU09VUkNFX1dFQkNPUkVfREVSSVZF
RF9ERVBFTkRFTkNJRVMoJHtXRUJDT1JFX0RJUn0vY3NzL0NTU1BhcnNlci5jcHAgQ1NTVmFsdWVL
ZXl3b3Jkcy5oKQogCiAjIEdlbmVyYXRlIENTUyB2YWx1ZSBrZXl3b3JkcwpJbmRleDogU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHJldmlzaW9u
IDI2ODUwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDYgKzMsNyBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9CeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5QnVpbHRpbnMuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTUHJvcGVydHlOYW1lcy5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1Byb3BlcnR5TmFt
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTU3R5
bGVEZWNsYXJhdGlvbitQcm9wZXJ0eU5hbWVzLmlkbAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTVmFsdWVLZXl3b3Jkcy5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1ZhbHVlS2V5d29yZHMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ29sb3JEYXRhLmNwcApAQCAt
MjkwLDYgKzI5MSw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWIK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTUnVsZS5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU1J1bGVM
aXN0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlND
U1NSdWxlTGlzdC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0NTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5jcHAKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbitQcm9w
ZXJ0eU5hbWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbi5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU1N0eWxlUnVsZS5jcHAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjY4NTA1KQorKysgU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTMyNyw2ICsxMzI3
LDcgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkveG1sL1hQYXRoUmVzdWx0
LmlkbCBcCiAgICAgJChXZWJDb3JlKS94bWwvWFNMVFByb2Nlc3Nvci5pZGwgXAogICAgIEludGVy
bmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRsIFwKKyAgICBDU1NTdHlsZURlY2xhcmF0aW9uK1Byb3Bl
cnR5TmFtZXMuaWRsIFwKICMKIAogIyAtLS0tLS0tLQpAQCAtMTQxOCw2ICsxNDE5LDcgQEAgYWxs
IDogXAogICAgIFN0eWxlQnVpbGRlckdlbmVyYXRlZC5jcHAgXAogICAgIFN0eWxlUHJvcGVydHlT
aG9ydGhhbmRGdW5jdGlvbnMuY3BwIFwKICAgICBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rp
b25zLmggXAorICAgIENTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5pZGwgXAogICAg
IFVzZXJBZ2VudFN0eWxlU2hlZXRzLmggXAogICAgIFdlYktpdEZvbnRGYW1pbHlOYW1lcy5jcHAg
XAogICAgIFdlYktpdEZvbnRGYW1pbHlOYW1lcy5oIFwKQEAgLTE0NDUsNiArMTQ0Nyw3IEBAIENT
U19QUk9QRVJUWV9OQU1FX0ZJTEVTID0gXAogICAgIFN0eWxlQnVpbGRlckdlbmVyYXRlZC5jcHAg
XAogICAgIFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwIFwKICAgICBTdHlsZVBy
b3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmggXAorICAgIENTU1N0eWxlRGVjbGFyYXRpb24rUHJv
cGVydHlOYW1lcy5pZGwgXAogIwogQ1NTX1BST1BFUlRZX05BTUVfRklMRVNfUEFUVEVSTlMgPSAk
KHN1YnN0IC4sJSwkKENTU19QUk9QRVJUWV9OQU1FX0ZJTEVTKSkKIApJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlz
aW9uIDI2ODUwNSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xMTg3LDE1ICsxMTg3LDEyIEBAIHN1YiBHZW5l
cmF0ZUludm9rZU5hbWVkUHJvcGVydHlTZXR0ZXIKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRp
bmRlbnQgLiAiYXV0byBuYXRpdmVWYWx1ZSA9ICR7bmF0aXZlVmFsdWV9O1xuIik7CiAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gIlJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29w
ZSwgdHJ1ZSk7XG4iKTsKIAotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJib29s
IGlzUHJvcGVydHlTdXBwb3J0ZWQgPSB0cnVlO1xuIikgaWYgJG5hbWVkU2V0dGVyT3BlcmF0aW9u
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDYWxsTmFtZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVkUHJv
cGVydGllc307Ci0KICAgICBteSAkbmFtZWRTZXR0ZXJGdW5jdGlvbk5hbWUgPSAkbmFtZWRTZXR0
ZXJPcGVyYXRpb24tPm5hbWUgfHwgInNldE5hbWVkSXRlbSI7CiAgICAgbXkgJG5hdGl2ZVZhbHVl
UGFzc0V4cHJlc3Npb24gPSBQYXNzQXJndW1lbnRFeHByZXNzaW9uKCJuYXRpdmVWYWx1ZSIsICRh
cmd1bWVudCk7CiAKICAgICBteSBAYXJndW1lbnRzID0gKCk7CiAgICAgcHVzaChAYXJndW1lbnRz
LCAicHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSIpOwogICAgIHB1c2goQGFyZ3Vt
ZW50cywgJG5hdGl2ZVZhbHVlUGFzc0V4cHJlc3Npb24pOwotICAgIHB1c2goQGFyZ3VtZW50cywg
ImlzUHJvcGVydHlTdXBwb3J0ZWQiKSBpZiAkbmFtZWRTZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0NhbGxOYW1lZFNldHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9wZXJ0aWVzfTsK
IAogICAgIG15ICRmdW5jdGlvblN0cmluZyA9ICJ0aGlzT2JqZWN0LT53cmFwcGVkKCkuJHtuYW1l
ZFNldHRlckZ1bmN0aW9uTmFtZX0oIiAuIGpvaW4oIiwgIiwgQGFyZ3VtZW50cykgLiAiKSI7CiAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gImludm9rZUZ1bmN0b3JQcm9wYWdhdGlu
Z0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBb
Jl0geyByZXR1cm4gJHtmdW5jdGlvblN0cmluZ307IH0pO1xuIik7CkBAIC0xMjUwLDEwICsxMjQ3
LDYgQEAgc3ViIEdlbmVyYXRlUHV0CiAgICAgICAgIH0KIAogICAgICAgICBHZW5lcmF0ZUludm9r
ZU5hbWVkUHJvcGVydHlTZXR0ZXIoJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIg
ICAgICAgICIsICRpbnRlcmZhY2UsICRuYW1lZFNldHRlck9wZXJhdGlvbiwgInZhbHVlIik7Ci0g
ICAgICAgIGlmICgkbmFtZWRTZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e0Nh
bGxOYW1lZFNldHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9wZXJ0aWVzfSkgewotICAgICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgICAgIGlmICghaXNQ
cm9wZXJ0eVN1cHBvcnRlZClcbiIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAk
YWRkaXRpb25hbEluZGVudCAuICIgICAgICAgICAgICByZXR1cm4gSlNPYmplY3Q6OnB1dCh0aGlz
T2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9w
ZXJ0eVNsb3QpO1xuIik7Ci0gICAgICAgIH0KICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAk
YWRkaXRpb25hbEluZGVudCAuICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAKICAgICAgICAg
aWYgKCEkbGVnYWN5T3ZlcnJpZGVCdWlsdGlucykgewpAQCAtMTI4Niw3ICsxMjc5LDcgQEAgc3Vi
IEdlbmVyYXRlUHV0QnlJbmRleAogICAgIG15ICRpbmRleGVkU2V0dGVyT3BlcmF0aW9uID0gR2V0
SW5kZXhlZFNldHRlck9wZXJhdGlvbigkaW50ZXJmYWNlKTsKICAgICAKICAgICBteSAkbGVnYWN5
T3ZlcnJpZGVCdWlsdGlucyA9ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0V4dGVuZGVkQXR0cmli
dXRlKCRpbnRlcmZhY2UsICJMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIik7Ci0gICAgbXkgJGVsbGlk
ZXNDYWxsc1RvQmFzZSA9ICgkbmFtZWRTZXR0ZXJPcGVyYXRpb24gJiYgJGxlZ2FjeU92ZXJyaWRl
QnVpbHRpbnMpICYmICEkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntQbHVnaW59ICYm
ICEkbmFtZWRTZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NhbGxOYW1lZFNl
dHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9wZXJ0aWVzfTsKKyAgICBteSAkZWxsaWRlc0NhbGxzVG9C
YXNlID0gKCRuYW1lZFNldHRlck9wZXJhdGlvbiAmJiAkbGVnYWN5T3ZlcnJpZGVCdWlsdGlucykg
JiYgISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e1BsdWdpbn07CiAgICAgCiAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiYm9vbCAke2NsYXNzTmFtZX06OnB1dEJ5SW5kZXgoSlNDZWxs
KiBjZWxsLCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgdW5zaWduZWQgaW5k
ZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wiIC4gKCEkZWxsaWRlc0NhbGxzVG9CYXNlID8gIiBzaG91
bGRUaHJvdyIgOiAiIikgLiAiKVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7
CkBAIC0xMzI4LDEwICsxMzIxLDYgQEAgc3ViIEdlbmVyYXRlUHV0QnlJbmRleAogICAgICAgICB9
CiAgICAgICAgIAogICAgICAgICBHZW5lcmF0ZUludm9rZU5hbWVkUHJvcGVydHlTZXR0ZXIoJG91
dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgIiwgJGludGVyZmFjZSwgJG5hbWVk
U2V0dGVyT3BlcmF0aW9uLCAidmFsdWUiKTsKLSAgICAgICAgaWYgKCRuYW1lZFNldHRlck9wZXJh
dGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q2FsbE5hbWVkU2V0dGVyT25seUZvclN1cHBvcnRl
ZFByb3BlcnRpZXN9KSB7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlv
bmFsSW5kZW50IC4gIiAgICBpZiAoIWlzUHJvcGVydHlTdXBwb3J0ZWQpXG4iKTsKLSAgICAgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGFkZGl0aW9uYWxJbmRlbnQgLiAiICAgICAgICByZXR1
cm4gSlNPYmplY3Q6OnB1dEJ5SW5kZXgoY2VsbCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgaW5kZXgs
IHZhbHVlLCBzaG91bGRUaHJvdyk7XG4iKTsKLSAgICAgICAgfQogICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50IC4gIiAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAg
ICAgICAKICAgICAgICAgaWYgKCEkbGVnYWN5T3ZlcnJpZGVCdWlsdGlucykgewpAQCAtMTQ3NSwx
MCArMTQ2NCw3IEBAIHN1YiBHZW5lcmF0ZURlZmluZU93blByb3BlcnR5CiAgICAgICAgICAgICAK
ICAgICAgICAgICAgICMgMi4yLjIuIEludm9rZSB0aGUgbmFtZWQgcHJvcGVydHkgc2V0dGVyIHdp
dGggUCBhbmQgRGVzYy5bW1ZhbHVlXV0uCiAgICAgICAgICAgICBHZW5lcmF0ZUludm9rZU5hbWVk
UHJvcGVydHlTZXR0ZXIoJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgICAg
ICIsICRpbnRlcmZhY2UsICRuYW1lZFNldHRlck9wZXJhdGlvbiwgInByb3BlcnR5RGVzY3JpcHRv
ci52YWx1ZSgpIik7Ci0gICAgICAgICAgICBpZiAoJG5hbWVkU2V0dGVyT3BlcmF0aW9uLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPntDYWxsTmFtZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVydGll
c30pIHsKLSAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5k
ZW50IC4gIiAgICBpZiAoIWlzUHJvcGVydHlTdXBwb3J0ZWQpXG4iKTsKLSAgICAgICAgICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50IC4gIiAgICAgICAgcmV0dXJu
IEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3Qs
IHByb3BlcnR5TmFtZSwgcHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7XG4iKTsKLSAg
ICAgICAgICAgIH0KKwogICAgICAgICAgICAgIyAyLjIuMy4gUmV0dXJuIHRydWUuCiAgICAgICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50IC4gIiAgICAgICAgcmV0
dXJuIHRydWU7XG4iKTsKICAgICAgICAgfQpAQCAtMTg1Myw3ICsxODM5LDcgQEAgc3ViIE1hbmds
ZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lCiAKICAgICAkbmFtZSA9fiBzLy0vX2Rhc2hfL2c7CiAK
LSAgICByZXR1cm4gJG5hbWU7CisgICAgcmV0dXJuICRuYW1lID1+IC9eXy8gPyAkbmFtZSA6ICdf
JyAuICRuYW1lOwogfQogCiBzdWIgR2V0QXR0cmlidXRlR2V0dGVyTmFtZQpAQCAtMTg2MSw5ICsx
ODQ3LDkgQEAgc3ViIEdldEF0dHJpYnV0ZUdldHRlck5hbWUKICAgICBteSAoJGludGVyZmFjZSwg
JGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSkgPSBAXzsKIAogICAgIHJldHVybiBHZXRKU0J1aWx0aW5G
dW5jdGlvbk5hbWUoJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSkgaWYgSXNKU0J1aWx0aW4oJGludGVy
ZmFjZSwgJGF0dHJpYnV0ZSk7Ci0gICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0
KCRjbGFzc05hbWUpIC4gIkNvbnN0cnVjdG9yIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0
KE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpKSBpZiAkYXR0
cmlidXRlLT5pc1N0YXRpYzsKLSAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3Qo
JGNsYXNzTmFtZSkgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdChNYW5nbGVBdHRyaWJ1dGVP
ckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSkgLiAiQ29uc3RydWN0b3IiIGlmICRjb2Rl
R2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVHlwZSgkYXR0cmlidXRlLT50eXBlKTsKLSAgICByZXR1
cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAkY29kZUdlbmVyYXRv
ci0+V0tfdWNmaXJzdChNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5u
YW1lKSk7CisgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUp
IC4gIkNvbnN0cnVjdG9yIiAuIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1
dGUtPm5hbWUpIGlmICRhdHRyaWJ1dGUtPmlzU3RhdGljOworICAgIHJldHVybiAkY29kZUdlbmVy
YXRvci0+V0tfbGNmaXJzdCgkY2xhc3NOYW1lKSAuIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25O
YW1lKCRhdHRyaWJ1dGUtPm5hbWUpIC4gIkNvbnN0cnVjdG9yIiBpZiAkY29kZUdlbmVyYXRvci0+
SXNDb25zdHJ1Y3RvclR5cGUoJGF0dHJpYnV0ZS0+dHlwZSk7CisgICAgcmV0dXJuICRjb2RlR2Vu
ZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUpIC4gTWFuZ2xlQXR0cmlidXRlT3JGdW5jdGlv
bk5hbWUoJGF0dHJpYnV0ZS0+bmFtZSk7CiB9CiAKIHN1YiBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1l
CkBAIC0xODcxLDkgKzE4NTcsOSBAQCBzdWIgR2V0QXR0cmlidXRlU2V0dGVyTmFtZQogICAgIG15
ICgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKSA9IEBfOwogCiAgICAgcmV0dXJu
ICJzZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoR2V0SlNCdWlsdGluRnVuY3Rpb25O
YW1lKCRjbGFzc05hbWUsICRhdHRyaWJ1dGUpKSBpZiBJc0pTQnVpbHRpbigkaW50ZXJmYWNlLCAk
YXR0cmlidXRlKTsKLSAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJz
dCgkY2xhc3NOYW1lKSAuICJDb25zdHJ1Y3RvciIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJz
dChNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSkgaWYgJGF0
dHJpYnV0ZS0+aXNTdGF0aWM7Ci0gICAgcmV0dXJuICJzZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldL
X3VjZmlyc3QoJGNsYXNzTmFtZSkgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdChNYW5nbGVB
dHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSkgLiAiQ29uc3RydWN0b3Ii
IGlmICRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVHlwZSgkYXR0cmlidXRlLT50eXBlKTsK
LSAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY2xhc3NOYW1l
KSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25O
YW1lKCRhdHRyaWJ1dGUtPm5hbWUpKTsKKyAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRv
ci0+V0tfdWNmaXJzdCgkY2xhc3NOYW1lKSAuICJDb25zdHJ1Y3RvciIgLiBNYW5nbGVBdHRyaWJ1
dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSBpZiAkYXR0cmlidXRlLT5pc1N0YXRp
YzsKKyAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY2xhc3NO
YW1lKSAuIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpIC4g
IkNvbnN0cnVjdG9yIiBpZiAkY29kZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3RvclR5cGUoJGF0dHJp
YnV0ZS0+dHlwZSk7CisgICAgcmV0dXJuICJzZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmly
c3QoJGNsYXNzTmFtZSkgLiBNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRl
LT5uYW1lKTsKIH0KIAogc3ViIEdldEZ1bmN0aW9uTmFtZQpAQCAtMTg4Niw3ICsxODcyLDcgQEAg
c3ViIEdldEZ1bmN0aW9uTmFtZQogICAgICRmdW5jdGlvbk5hbWUgPSAiU3ltYm9sSXRlcmF0b3Ii
IGlmICRmdW5jdGlvbk5hbWUgZXEgIltTeW1ib2wuSXRlcmF0b3JdIjsKIAogICAgIG15ICRraW5k
ID0gJG9wZXJhdGlvbi0+aXNTdGF0aWMgPyAiQ29uc3RydWN0b3IiIDogKE9wZXJhdGlvblNob3Vs
ZEJlT25JbnN0YW5jZSgkaW50ZXJmYWNlLCAkb3BlcmF0aW9uKSA/ICJJbnN0YW5jZSIgOiAiUHJv
dG90eXBlIik7Ci0gICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05h
bWUpIC4gJGtpbmQgLiAiRnVuY3Rpb24iIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoTWFu
Z2xlQXR0cmlidXRlT3JGdW5jdGlvbk5hbWUoJGZ1bmN0aW9uTmFtZSkpOworICAgIHJldHVybiAk
Y29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkY2xhc3NOYW1lKSAuICRraW5kIC4gIkZ1bmN0aW9u
IiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRmdW5jdGlvbk5hbWUpOwogfQogCiBzdWIg
R2V0RnVsbHlRdWFsaWZpZWRJbXBsZW1lbnRhdGlvbkNhbGxOYW1lCkBAIC0yMjA0LDggKzIxOTAs
NiBAQCBzdWIgSW5zdGFuY2VPdmVycmlkZXNEZWZpbmVPd25Qcm9wZXJ0eQogewogICAgIG15ICRp
bnRlcmZhY2UgPSBzaGlmdDsKIAotICAgIHJldHVybiAwIGlmICRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0RlZmF1bHREZWZpbmVPd25Qcm9wZXJ0eX07Ci0KICAgICByZXR1cm4gJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tRGVmaW5lT3duUHJvcGVydHl9CiAg
ICAgICAgIHx8IEdldEluZGV4ZWRTZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSkKICAgICAgICAg
fHwgR2V0TmFtZWRTZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSk7CkBAIC0zOTc5LDYgKzM5NjMs
OSBAQCBzdWIgR2V0U2tpcFZUYWJsZVZhbGlkYXRpb25Gb3JJbnRlcmZhY2UKIHN1YiBUb01ldGhv
ZE5hbWUKIHsKICAgICBteSAkcGFyYW0gPSBzaGlmdDsKKyAgICAKKyAgICByZXR1cm4gJHBhcmFt
IGlmICRwYXJhbSA9fiAvXkNTU09NLzsKKwogICAgIG15ICRyZXQgPSBsY2ZpcnN0KCRwYXJhbSk7
CiAgICAgJHJldCA9fiBzL2NTUy9jc3MvIGlmICRyZXQgPX4gL15jU1MvOwogICAgICRyZXQgPX4g
cy9kT00vZG9tLyBpZiAkcmV0ID1+IC9eZE9NLzsKQEAgLTUzMjIsNiArNTMwOSwxMyBAQCBzdWIg
R2VuZXJhdGVBdHRyaWJ1dGVHZXR0ZXJCb2R5RGVmaW5pdGlvCiAgICAgICAgICAgICBBZGRUb0lt
cGxJbmNsdWRlcygiSlMiIC4gJGNvbnN0cnVjdG9yVHlwZSAuICIuaCIsICRjb25kaXRpb25hbCk7
CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEpTIiAuICRjb25z
dHJ1Y3RvclR5cGUgLiAiOjoke2NvbnN0cnVjdG9yR2V0dGVyfShKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7XG4iKTsKICAgICAgICAg
fQorICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NTU1Byb3Bl
cnR5fSkgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyJDU1NQcm9wZXJ0eU5hbWVzLmgifSA9IDE7
CisgICAgICAgIG15ICRwcm9wZXJ0eUlEID0gJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Q1NTUHJvcGVydHl9OworICAgICAgICBteSAkdG9KU0V4cHJlc3Npb24gPSBOYXRpdmVUb0pT
VmFsdWVVc2luZ1JlZmVyZW5jZXMoJGF0dHJpYnV0ZSwgJGludGVyZmFjZSwgImltcGwuZ2V0UHJv
cGVydHlWYWx1ZUludGVybmFsKENTU1Byb3BlcnR5JHtwcm9wZXJ0eUlEfSkiLCAiKnRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCkiKTsKKyAgICAgICAgCisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICBhdXRvJiBpbXBsID0gdGhpc09iamVjdC53cmFwcGVkKCk7XG4iKTsKKyAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
JHt0b0pTRXhwcmVzc2lvbn0pKTtcbiIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICgkYXR0
cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDYWNoZWRBdHRyaWJ1dGV9KSB7CiAgICAgICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKEpTVmFsdWUgY2FjaGVkVmFsdWUgPSB0
aGlzT2JqZWN0Lm1fIiAuICRhdHRyaWJ1dGUtPm5hbWUgLiAiLmdldCgpKVxuIik7CkBAIC01NDY2
LDYgKzU0NjAsMjAgQEAgc3ViIEdlbmVyYXRlQXR0cmlidXRlU2V0dGVyQm9keURlZmluaXRpbwog
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgdm0uaGVhcC53cml0ZUJhcnJpZXIoJnRo
aXNPYmplY3QsIHZhbHVlKTtcbiIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
ZW5zdXJlU3RpbGxBbGl2ZUhlcmUodmFsdWUpO1xuXG4iKTsKICAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIHJldHVybiB0cnVlO1xuIik7CisgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q1NTUHJvcGVydHl9KSB7CisgICAgICAgICRpbXBsSW5jbHVk
ZXN7IkNTU1Byb3BlcnR5TmFtZXMuaCJ9ID0gMTsKKworICAgICAgICBteSAkcHJvcGVydHlJRCA9
ICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NTU1Byb3BlcnR5fTsKKyAgICAgICAg
bXkgJGV4Y2VwdGlvblRocm93ZXIgPSBHZXRBdHRyaWJ1dGVFeGNlcHRpb25UaHJvd2VyKCRpbnRl
cmZhY2UsICRhdHRyaWJ1dGUpOworICAgICAgICBteSAkdG9OYXRpdmVFeHByZXNzaW9uID0gSlNW
YWx1ZVRvTmF0aXZlKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUsICJ2YWx1ZSIsICRhdHRyaWJ1dGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+e0NvbmRpdGlvbmFsfSwgIiZsZXhpY2FsR2xvYmFsT2JqZWN0
IiwgImxleGljYWxHbG9iYWxPYmplY3QiLCAidGhpc09iamVjdCIsICIqdGhpc09iamVjdC5nbG9i
YWxPYmplY3QoKSIsICRleGNlcHRpb25UaHJvd2VyKTsKKworICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpO1xuIik7CisgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvIG5hdGl2ZVZhbHVlID0gJHt0b05hdGl2
ZUV4cHJlc3Npb259O1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGZhbHNlKTtcbiIpOworICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgQXR0cmlidXRlU2V0dGVyOjpjYWxsKGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIFsmXSB7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgICAgICByZXR1cm4gaW1wbC5zZXRQcm9wZXJ0eUludGVybmFsKENTU1Byb3BlcnR5JHtwcm9w
ZXJ0eUlEfSwgV1RGTW92ZShuYXRpdmVWYWx1ZSksIGZhbHNlKTtcbiIpOworICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgfSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAgfSBlbHNpZiAoJGlzQ29uc3RydWN0b3IpIHsK
ICAgICAgICAgbXkgJGNvbnN0cnVjdG9yVHlwZSA9ICRhdHRyaWJ1dGUtPnR5cGUtPm5hbWU7CiAg
ICAgICAgICRjb25zdHJ1Y3RvclR5cGUgPX4gcy9Db25zdHJ1Y3RvciQvLzsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uCShy
ZXZpc2lvbiAyNjg1MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0
dHJpYnV0ZXMuanNvbgkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksMTAgQEAKICAgICAgICAg
ICAgICAgICAidXJsIjogImh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2N1
c3RvbS1lbGVtZW50cy5odG1sI2NlcmVhY3Rpb25zIgogICAgICAgICAgICAgfQogICAgICAgICB9
LAorICAgICAgICAiQ1NTUHJvcGVydHkiOiB7CisgICAgICAgICAgICAiY29udGV4dHNBbGxvd2Vk
IjogWyJhdHRyaWJ1dGUiXSwKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbIioiXQorICAgICAgICB9
LAogICAgICAgICAiQ2FjaGVkQXR0cmlidXRlIjogewogICAgICAgICAgICAgImNvbnRleHRzQWxs
b3dlZCI6IFsiYXR0cmlidXRlIl0KICAgICAgICAgfSwKQEAgLTQ5LDkgKzUzLDYgQEAKICAgICAg
ICAgIkNhbGxiYWNrVGhpc09iamVjdCI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQi
OiBbImNhbGxiYWNrLWZ1bmN0aW9uIiwgIm9wZXJhdGlvbiJdCiAgICAgICAgIH0sCi0gICAgICAg
ICJDYWxsTmFtZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVydGllcyI6IHsKLSAgICAgICAg
ICAgICJjb250ZXh0c0FsbG93ZWQiOiBbIm9wZXJhdGlvbiJdCi0gICAgICAgIH0sCiAgICAgICAg
ICJDYWxsV2l0aCI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImF0dHJpYnV0
ZSIsICJvcGVyYXRpb24iXSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbIkRvY3VtZW50IiwgIkV4
ZWNTdGF0ZSIsICJTY3JpcHRFeGVjdXRpb25Db250ZXh0IiwgIkdsb2JhbE9iamVjdCIsICJBY3Rp
dmVXaW5kb3ciLCAiRmlyc3RXaW5kb3ciLCAiUmVzcG9uc2libGVEb2N1bWVudCIsICJXb3JsZCJd
LApAQCAtMTU3LDkgKzE1OCw2IEBACiAgICAgICAgICJEZWZhdWx0IjogewogICAgICAgICAgICAg
ImNvbnRleHRzQWxsb3dlZCI6IFsib3BlcmF0aW9uIl0KICAgICAgICAgfSwKLSAgICAgICAgIkRl
ZmF1bHREZWZpbmVPd25Qcm9wZXJ0eSI6IHsKLSAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQi
OiBbImludGVyZmFjZSJdCi0gICAgICAgIH0sCiAgICAgICAgICJEaXNhYmxlZEJ5UXVpcmsiOiB7
CiAgICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJpbnRlcmZhY2UiLCAiZGljdGlvbmFy
eSIsICJlbnVtIiwgImF0dHJpYnV0ZSIsICJvcGVyYXRpb24iLCAiY29uc3RhbnQiLCAiZGljdGlv
bmFyeS1tZW1iZXIiLCAiaW5jbHVkZXMiXSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbIioiXSwK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwJKHJldmlz
aW9uIDI2ODUwNSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDYsIDIwMDcsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5LCAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdt
YWlsLmNvbT4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xOCw0MCArMTgsMjkgQEAKICAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgogICovCiAKK3R5cGVkZWYgVVNWU3RyaW5nIENTU09NU3RyaW5nOwor
CiBbCiAgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCi0gICAgRGVmYXVsdERlZmluZU93
blByb3BlcnR5LAogICAgIEdlbmVyYXRlSXNSZWFjaGFibGUsCiAgICAgSlNDdXN0b21IZWFkZXIs
CiAgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgU2tpcFZUYWJsZVZhbGlkYXRpb24sCiAg
ICAgRXhwb3NlZD1XaW5kb3cKIF0gaW50ZXJmYWNlIENTU1N0eWxlRGVjbGFyYXRpb24gewotICAg
IFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBjc3NUZXh0OwotCi0gICAgRE9NU3Ry
aW5nIGdldFByb3BlcnR5VmFsdWUoRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7Ci0KLSAgICBbQ0VS
ZWFjdGlvbnMsIE1heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgcmVtb3ZlUHJvcGVydHkoRE9N
U3RyaW5nIHByb3BlcnR5TmFtZSk7Ci0gICAgRE9NU3RyaW5nPyBnZXRQcm9wZXJ0eVByaW9yaXR5
KERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwotCi0gICAgW0NFUmVhY3Rpb25zLCBNYXlUaHJvd0V4
Y2VwdGlvbl0gdW5kZWZpbmVkIHNldFByb3BlcnR5KERPTVN0cmluZyBwcm9wZXJ0eU5hbWUsIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gRE9NU3RyaW5nIHZhbHVlLCBvcHRpb25hbCBbTGVnYWN5
TnVsbFRvRW1wdHlTdHJpbmddIERPTVN0cmluZyBwcmlvcml0eSA9ICIiKTsKLQorICAgIFtDRVJl
YWN0aW9uc10gYXR0cmlidXRlIENTU09NU3RyaW5nIGNzc1RleHQ7CiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwotICAgIGdldHRlciBET01TdHJpbmcgaXRlbSh1
bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICBnZXR0ZXIgQ1NTT01TdHJpbmcgaXRlbSh1bnNpZ25l
ZCBsb25nIGluZGV4KTsKKyAgICBDU1NPTVN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlKENTU09NU3Ry
aW5nIHByb3BlcnR5KTsKKyAgICAvLyBGSVhNRTogVGhlIHJldHVybiB2YWx1ZSBvZiAnZ2V0UHJv
cGVydHlQcmlvcml0eScgc2hvdWxkIG5vdCBiZSBudWxsYWJsZS4KKyAgICBDU1NPTVN0cmluZz8g
Z2V0UHJvcGVydHlQcmlvcml0eShDU1NPTVN0cmluZyBwcm9wZXJ0eSk7CisgICAgW0NFUmVhY3Rp
b25zLCBNYXlUaHJvd0V4Y2VwdGlvbl0gdW5kZWZpbmVkIHNldFByb3BlcnR5KENTU09NU3RyaW5n
IHByb3BlcnR5LCBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHZhbHVlLCBv
cHRpb25hbCBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHByaW9yaXR5ID0g
IiIpOworICAgIFtDRVJlYWN0aW9ucywgTWF5VGhyb3dFeGNlcHRpb25dIENTU09NU3RyaW5nIHJl
bW92ZVByb3BlcnR5KENTU09NU3RyaW5nIHByb3BlcnR5KTsKICAgICByZWFkb25seSBhdHRyaWJ1
dGUgQ1NTUnVsZT8gcGFyZW50UnVsZTsKKyAgICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGNzc0Zsb2F0OwogCi0gICAgW0NFUmVh
Y3Rpb25zXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBET01TdHJpbmcgY3Nz
RmxvYXQ7Ci0KKyAgICAvLyBOb24tc3RhbmRhcmQuCiAgICAgRE9NU3RyaW5nPyBnZXRQcm9wZXJ0
eVNob3J0aGFuZChvcHRpb25hbCBET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKICAgICBib29sZWFu
IGlzUHJvcGVydHlJbXBsaWNpdChvcHRpb25hbCBET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKLQot
ICAgIC8vIFVzZSBuYW1lZCBnZXR0ZXJzL3NldHRlcnMgZm9yIGFsbCBzdXBwb3J0IENTUyBwcm9w
ZXJ0eSBuYW1lcy4gVGhlIHNwZWMgc2F5cwotICAgIC8vIHRoZXNlIHNob3VsZCBiZSBub3JtYWwg
YXR0cmlidXRlcywgYnV0IHRoZXJlIGFyZSB0b28gbWFueSBjb21iaW5hdGlvbnMgd2l0aAotICAg
IC8vIHByZWZpeGVzIGZvciB0aGlzIHRvIGJlIHByYWN0aWNhbC4gSWYgd2UgcmVtb3ZlIGxlZ2Fj
eSBhbGlhc2VzLCB3ZSBzaG91bGQKLSAgICAvLyByZWNvbnNpZGVyIHRoaXMgZGVjaXNpb24uCi0g
ICAgZ2V0dGVyIChET01TdHJpbmcgb3IgZG91YmxlKSAoRE9NU3RyaW5nIG5hbWUpOwotICAgIFtD
RVJlYWN0aW9ucywgQ2FsbE5hbWVkU2V0dGVyT25seUZvclN1cHBvcnRlZFByb3BlcnRpZXNdIHNl
dHRlciB1bmRlZmluZWQgKERPTVN0cmluZyBuYW1lLCBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IERPTVN0cmluZyB2YWx1ZSk7Ci0KLSAgICAvLyBUaGlzIG1ldGhvZCBpcyBkZXByZWNhdGVkLCBh
bmQgd2Ugd291bGQgbGlrZSB0byBkcm9wIHN1cHBvcnQgZm9yIGl0IHNvbWVkYXkKICAgICBEZXBy
ZWNhdGVkQ1NTT01WYWx1ZT8gZ2V0UHJvcGVydHlDU1NWYWx1ZShET01TdHJpbmcgcHJvcGVydHlO
YW1lKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL21ha2Vwcm9wLnBsCShyZXZpc2lvbiAyNjg1MDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwJKHdvcmtpbmcgY29weSkKQEAgLTEzNTgs
MyArMTM1OCwxNzUgQEAgaWYgKG5vdCAkZ3BlcmYpIHsKICAgICAkZ3BlcmYgPSAkRU5We0dQRVJG
fSA/ICRFTlZ7R1BFUkZ9IDogImdwZXJmIjsKIH0KIHN5c3RlbSgiXCIkZ3BlcmZcIiAtLWtleS1w
b3NpdGlvbnM9XCIqXCIgLUQgLW4gLXMgMiBDU1NQcm9wZXJ0eU5hbWVzLmdwZXJmIC0tb3V0cHV0
LWZpbGU9Q1NTUHJvcGVydHlOYW1lcy5jcHAiKSA9PSAwIHx8IGRpZSAiY2FsbGluZyBncGVyZiBm
YWlsZWQ6ICQ/IjsKKworCisjIEdlbmVyYXRlIENTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlO
YW1lcy5pZGwKKworIyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20vI2Nzcy1wcm9wZXJ0
eS10by1pZGwtYXR0cmlidXRlCitzdWIgY3NzUHJvcGVydHlUb0lETEF0dHJpYnV0ZSgkJCQpCit7
CisgICAgbXkgJHByb3BlcnR5ID0gc2hpZnQ7CisgICAgbXkgJGxvd2VyY2FzZUZpcnN0ID0gc2hp
ZnQ7CisgICAgbXkgJHVwcGVyY2FzZUZpcnN0ID0gc2hpZnQ7CisKKyAgICBteSAkb3V0cHV0ID0g
IiI7CisgICAgbXkgJHVwcGVyY2FzZU5leHQgPSAkdXBwZXJjYXNlRmlyc3Q7CisKKyAgICBpZiAo
JGxvd2VyY2FzZUZpcnN0KSB7CisgICAgICAgICRwcm9wZXJ0eSA9IHN1YnN0cigkcHJvcGVydHks
IDEpOworICAgIH0KKworICAgIGZvcmVhY2ggbXkgJGNoYXJhY3RlciAoc3BsaXQgLy8sICRwcm9w
ZXJ0eSkgeworICAgICAgICBpZiAoJGNoYXJhY3RlciBlcSAiLSIpIHsKKyAgICAgICAgICAgICR1
cHBlcmNhc2VOZXh0ID0gMTsKKyAgICAgICAgfSBlbHNpZiAoJHVwcGVyY2FzZU5leHQpIHsKKyAg
ICAgICAgICAgICR1cHBlcmNhc2VOZXh0ID0gMDsKKyAgICAgICAgICAgICRvdXRwdXQgLj0gdWMg
JGNoYXJhY3RlcjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRvdXRwdXQgLj0gJGNo
YXJhY3RlcjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICByZXR1cm4gJG91dHB1dDsKK30K
KworbXkgJW5hbWVzQW5kQWxpYXNlc1RvTmFtZTsKK2ZvcmVhY2ggbXkgJG5hbWUgKEBuYW1lcykg
eworICAgIGlmIChncmVwIHsgJF8gZXEgJG5hbWUgfSBAaW50ZXJuYWxQcm9wcmVydGllcykgewor
ICAgICAgICBuZXh0OworICAgIH0KKyAgICAkbmFtZXNBbmRBbGlhc2VzVG9OYW1leyRuYW1lfSA9
ICRuYW1lOworICAgIGZvciBteSAkYWxpYXMgKEB7JG5hbWVUb0FsaWFzZXN7JG5hbWV9fSkgewor
ICAgICAgICAkbmFtZXNBbmRBbGlhc2VzVG9OYW1leyRhbGlhc30gPSAkbmFtZTsKKyAgICB9Cit9
CitteSBAbmFtZXNBbmRBbGlhc2VzID0gc29ydCBrZXlzKCVuYW1lc0FuZEFsaWFzZXNUb05hbWUp
OworCitvcGVuIENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwsICI+Iiwg
IkNTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5pZGwiIG9yIGRpZSAiQ291bGQgbm90
IG9wZW4gQ1NTU3R5bGVEZWNsYXJhdGlvbitQcm9wZXJ0eU5hbWVzLmlkbCBmb3Igd3JpdGluZ1xu
IjsKK3ByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgPDwgIkVP
RiI7CisvLyBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSAkaW5wdXRG
aWxlIGJ5IHRoZSBtYWtlcHJvcC5wbCBzY3JpcHQuIERvIG5vdCBlZGl0IGl0LgorCit0eXBlZGVm
IFVTVlN0cmluZyBDU1NPTVN0cmluZzsKKworcGFydGlhbCBpbnRlcmZhY2UgQ1NTU3R5bGVEZWNs
YXJhdGlvbiB7CitFT0YKKyAKK3ByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9O
QU1FU19JREwgPDwgIkVPRiI7CisgICAgLy8gRm9yIGVhY2ggQ1NTIHByb3BlcnR5IHByb3BlcnR5
IHRoYXQgaXMgYSBzdXBwb3J0ZWQgQ1NTIHByb3BlcnR5LCB0aGUgZm9sbG93aW5nCisgICAgLy8g
cGFydGlhbCBpbnRlcmZhY2UgYXBwbGllcyB3aGVyZSBjYW1lbC1jYXNlZCBhdHRyaWJ1dGUgaXMg
b2J0YWluZWQgYnkgcnVubmluZyB0aGUKKyAgICAvLyBDU1MgcHJvcGVydHkgdG8gSURMIGF0dHJp
YnV0ZSBhbGdvcml0aG0gZm9yIHByb3BlcnR5LgorICAgIC8vIEV4YW1wbGU6IGZvbnQtc2l6ZSAt
PiBlbGVtZW50LnN0eWxlLmZvbnRTaXplCisgICAgLy8gRXhhbXBsZTogLXdlYmtpdC10cmFuc2Zv
cm0gLT4gZWxlbWVudC5zdHlsZS5XZWJraXRUcmFuc2Zvcm0KKyAgICAvLyBbQ0VSZWFjdGlvbnNd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIF9jYW1lbF9j
YXNlZF9hdHRyaWJ1dGU7CitFT0YKKworZm9yZWFjaCBteSAkbmFtZU9yQWxpYXMgKEBuYW1lc0Fu
ZEFsaWFzZXMpIHsKKyAgICBteSAkY2FtZWxDYXNlZEF0dHJpYnV0ZU5hbWUgPSBjc3NQcm9wZXJ0
eVRvSURMQXR0cmlidXRlKCRuYW1lT3JBbGlhcywgMCwgMCk7CisgICAgbXkgJG5hbWUgPSAkbmFt
ZXNBbmRBbGlhc2VzVG9OYW1leyRuYW1lT3JBbGlhc307CisgICAgbXkgJHByb3BlcnR5SWQgPSAk
bmFtZVRvSWR7JG5hbWVzQW5kQWxpYXNlc1RvTmFtZXskbmFtZX19OworICAgIAorICAgIG15IEBl
eHRlbmRlZEF0dHJpYnV0ZVZhbHVlcyA9ICgiQ1NTUHJvcGVydHk9JHtwcm9wZXJ0eUlkfSIpOwor
ICAgIHB1c2goQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzLCAiRW5hYmxlZEJ5U2V0dGluZz0ke3Nl
dHRpbmdzRmxhZ3N7JG5hbWV9fSIpIGlmICRzZXR0aW5nc0ZsYWdzeyRuYW1lfTsKKyAgICBwdXNo
KEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcywgIkVuYWJsZWRBdFJ1bnRpbWU9JHtydW50aW1lRmxh
Z3N7JG5hbWV9fSIpIGlmICRydW50aW1lRmxhZ3N7JG5hbWV9OworICAgIG15ICRleHRlbmRlZEF0
dHJpYnV0ZXMgPSBqb2luKCIsICIsIEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcyk7CisKKyAgICBw
cmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVh
Y3Rpb25zLCAke2V4dGVuZGVkQXR0cmlidXRlc31dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nICR7Y2FtZWxDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIjsKK30K
KworcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9G
IjsKKworICAgIC8vIEZvciBlYWNoIENTUyBwcm9wZXJ0eSBwcm9wZXJ0eSB0aGF0IGlzIGEgc3Vw
cG9ydGVkIENTUyBwcm9wZXJ0eSBhbmQgdGhhdCBiZWdpbnMKKyAgICAvLyB3aXRoIHRoZSBzdHJp
bmcgLXdlYmtpdC0sIHRoZSBmb2xsb3dpbmcgcGFydGlhbCBpbnRlcmZhY2UgYXBwbGllcyB3aGVy
ZSB3ZWJraXQtY2FzZWQKKyAgICAvLyBhdHRyaWJ1dGUgaXMgb2J0YWluZWQgYnkgcnVubmluZyB0
aGUgQ1NTIHByb3BlcnR5IHRvIElETCBhdHRyaWJ1dGUgYWxnb3JpdGhtIGZvcgorICAgIC8vIHBy
b3BlcnR5LCB3aXRoIHRoZSBsb3dlcmNhc2UgZmlyc3QgZmxhZyBzZXQuCisgICAgLy8gRXhhbXBs
ZTogLXdlYmtpdC10cmFuc2Zvcm0gLT4gZWxlbWVudC5zdHlsZS53ZWJraXRUcmFuc2Zvcm0KKyAg
ICAvLyBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENT
U09NU3RyaW5nIF93ZWJraXRfY2FzZWRfYXR0cmlidXRlOworRU9GCisKK2ZvcmVhY2ggbXkgJG5h
bWVPckFsaWFzIChncmVwIHsgJF8gPX4gL15cLXdlYmtpdFwtLyB9IEBuYW1lc0FuZEFsaWFzZXMp
IHsKKyAgICBteSAkd2Via2l0Q2FzZWRBdHRyaWJ1dGVOYW1lID0gY3NzUHJvcGVydHlUb0lETEF0
dHJpYnV0ZSgkbmFtZU9yQWxpYXMsIDEsIDApOworICAgIG15ICRuYW1lID0gJG5hbWVzQW5kQWxp
YXNlc1RvTmFtZXskbmFtZU9yQWxpYXN9OworICAgIG15ICRwcm9wZXJ0eUlkID0gJG5hbWVUb0lk
eyRuYW1lc0FuZEFsaWFzZXNUb05hbWV7JG5hbWV9fTsKKyAgICAKKyAgICBteSBAZXh0ZW5kZWRB
dHRyaWJ1dGVWYWx1ZXMgPSAoIkNTU1Byb3BlcnR5PSR7cHJvcGVydHlJZH0iKTsKKyAgICBwdXNo
KEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcywgIkVuYWJsZWRCeVNldHRpbmc9JHtzZXR0aW5nc0Zs
YWdzeyRuYW1lfX0iKSBpZiAkc2V0dGluZ3NGbGFnc3skbmFtZX07CisgICAgcHVzaChAZXh0ZW5k
ZWRBdHRyaWJ1dGVWYWx1ZXMsICJFbmFibGVkQXRSdW50aW1lPSR7cnVudGltZUZsYWdzeyRuYW1l
fX0iKSBpZiAkcnVudGltZUZsYWdzeyRuYW1lfTsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVz
ID0gam9pbigiLCAiLCBAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMpOworCisgICAgcHJpbnQgQ1NT
X1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywg
JHtleHRlbmRlZEF0dHJpYnV0ZXN9XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZyAke3dlYmtpdENhc2VkQXR0cmlidXRlTmFtZX07XG4iOworfQorCitwcmlu
dCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMIDw8ICJFT0YiOworCisg
ICAgLy8gRm9yIGVhY2ggQ1NTIHByb3BlcnR5IHByb3BlcnR5IHRoYXQgaXMgYSBzdXBwb3J0ZWQg
Q1NTIHByb3BlcnR5LCBleGNlcHQgZm9yCisgICAgLy8gcHJvcGVydGllcyB0aGF0IGhhdmUgbm8g
Ii0iIChVKzAwMkQpIGluIHRoZSBwcm9wZXJ0eSBuYW1lLCB0aGUgZm9sbG93aW5nIHBhcnRpYWwK
KyAgICAvLyBpbnRlcmZhY2UgYXBwbGllcyB3aGVyZSBkYXNoZWQgYXR0cmlidXRlIGlzIHByb3Bl
cnR5LgorICAgIC8vIEV4YW1wbGU6IGZvbnQtc2l6ZSAtPiBlbGVtZW50LnN0eWxlWydmb250LXNp
emUnXQorICAgIC8vIEV4YW1wbGU6IC13ZWJraXQtdHJhbnNmb3JtIC0+IGVsZW1lbnQuc3R5bGUu
Wyctd2Via2l0LXRyYW5zZm9ybSddCisgICAgLy8gW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBfZGFzaGVkX2F0dHJpYnV0ZTsKK0VP
RgorZm9yZWFjaCBteSAkbmFtZU9yQWxpYXMgKGdyZXAgeyAkXyA9fiAvXC0vIH0gQG5hbWVzQW5k
QWxpYXNlcykgeworICAgIG15ICRkYXNoZWRBdHRyaWJ1dGVOYW1lID0gJG5hbWVPckFsaWFzOwor
ICAgIG15ICRuYW1lID0gJG5hbWVzQW5kQWxpYXNlc1RvTmFtZXskbmFtZU9yQWxpYXN9OworICAg
IG15ICRwcm9wZXJ0eUlkID0gJG5hbWVUb0lkeyRuYW1lc0FuZEFsaWFzZXNUb05hbWV7JG5hbWV9
fTsKKyAgICAKKyAgICBteSBAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMgPSAoIkNTU1Byb3BlcnR5
PSR7cHJvcGVydHlJZH0iKTsKKyAgICBwdXNoKEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcywgIkVu
YWJsZWRCeVNldHRpbmc9JHtzZXR0aW5nc0ZsYWdzeyRuYW1lfX0iKSBpZiAkc2V0dGluZ3NGbGFn
c3skbmFtZX07CisgICAgcHVzaChAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMsICJFbmFibGVkQXRS
dW50aW1lPSR7cnVudGltZUZsYWdzeyRuYW1lfX0iKSBpZiAkcnVudGltZUZsYWdzeyRuYW1lfTsK
KyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVzID0gam9pbigiLCAiLCBAZXh0ZW5kZWRBdHRyaWJ1
dGVWYWx1ZXMpOworCisgICAgcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05B
TUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgJHtleHRlbmRlZEF0dHJpYnV0ZXN9XSBhdHRyaWJ1
dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAke2Rhc2hlZEF0dHJpYnV0
ZU5hbWV9O1xuIjsKK30KKworIyBFdmVyeXRoaW5nIGJlbG93IGhlcmUgaXMgbm9uLXN0YW5kYXJk
LgorCitwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMIDw8ICJF
T0YiOworCisgICAgLy8gTm9uLXN0YW5kYXJkLiBTcGVjaWFsIGNhc2UgcHJvcGVydGllcyBzdGFy
dGluZyB3aXRoIC1lcHViLSBsaWtlIGlzIGRvbmUgZm9yCisgICAgLy8gLXdlYmtpdC0sIHdoZXJl
IGF0dHJpYnV0ZSBpcyBvYnRhaW5lZCBieSBydW5uaW5nIHRoZSBDU1MgcHJvcGVydHkgdG8gSURM
IGF0dHJpYnV0ZQorICAgIC8vIGFsZ29yaXRobSBmb3IgcHJvcGVydHksIHdpdGggdGhlIGxvd2Vy
Y2FzZSBmaXJzdCBmbGFnIHNldC4KKyAgICAvLyBFeGFtcGxlOiAtZXB1Yi1jYXB0aW9uLXNpZGUg
LT4gZWxlbWVudC5zdHlsZS5lcHViQ2FwdGlvblNpZGUKK0VPRgorZm9yZWFjaCBteSAkbmFtZU9y
QWxpYXMgKGdyZXAgeyAkXyA9fiAvXlwtZXB1YlwtLyB9IEBuYW1lc0FuZEFsaWFzZXMpIHsKKyAg
ICBteSAkZXB1YkNhc2VkQXR0cmlidXRlTmFtZSA9IGNzc1Byb3BlcnR5VG9JRExBdHRyaWJ1dGUo
JG5hbWVPckFsaWFzLCAxLCAwKTsKKyAgICBteSAkbmFtZSA9ICRuYW1lc0FuZEFsaWFzZXNUb05h
bWV7JG5hbWVPckFsaWFzfTsKKyAgICBteSAkcHJvcGVydHlJZCA9ICRuYW1lVG9JZHskbmFtZXNB
bmRBbGlhc2VzVG9OYW1leyRuYW1lfX07CisgICAgCisgICAgbXkgQGV4dGVuZGVkQXR0cmlidXRl
VmFsdWVzID0gKCJDU1NQcm9wZXJ0eT0ke3Byb3BlcnR5SWR9Iik7CisgICAgcHVzaChAZXh0ZW5k
ZWRBdHRyaWJ1dGVWYWx1ZXMsICJFbmFibGVkQnlTZXR0aW5nPSR7c2V0dGluZ3NGbGFnc3skbmFt
ZX19IikgaWYgJHNldHRpbmdzRmxhZ3N7JG5hbWV9OworICAgIHB1c2goQGV4dGVuZGVkQXR0cmli
dXRlVmFsdWVzLCAiRW5hYmxlZEF0UnVudGltZT0ke3J1bnRpbWVGbGFnc3skbmFtZX19IikgaWYg
JHJ1bnRpbWVGbGFnc3skbmFtZX07CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlcyA9IGpvaW4o
IiwgIiwgQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzKTsKKworICAgIHByaW50IENTU19TVFlMRV9E
RUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5k
ZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01T
dHJpbmcgJHtlcHViQ2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiI7Cit9CisKK3ByaW50IENTU19TVFlM
RV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgPDwgIkVPRiI7CisKKyAgICAvLyBOb24t
c3RhbmRhcmQuIEFkZCBzcGVjaWFsIGNhc2VzIGZvciBhbGwgcHJvcGVydGllcyBub3Qgc3RhcnRp
bmcgd2l0aCAtd2Via2l0LSBvciAtZXB1Yi0KKyAgICAvLyB0aGF0IHB1dHMgYW4gbmV3IHByZWZp
eCBvZiBjc3MsIENzcywgcG9zLCBQb3MsIHBpeGVsIGFuZCBQaXhlbCBvbiBlYWNoLgorICAgIC8v
IEV4YW1wbGUgdG9wIC0+IGVsZW1lbnQuc3R5bGUucG9zVG9wCisgICAgLy8gRXhhbXBsZSB0b3Ag
LT4gZWxlbWVudC5zdHlsZS5QaXhlbFRvcAorRU9GCitmb3JlYWNoIG15ICRuYW1lT3JBbGlhcyAo
Z3JlcCB7ICRfICF+IC9eXC13ZWJraXRcLXxeXC1lcHViXC0vIH0gQG5hbWVzQW5kQWxpYXNlcykg
eworICAgIG15ICRjYW1lbENhc2VkQXR0cmlidXRlTmFtZSA9IGNzc1Byb3BlcnR5VG9JRExBdHRy
aWJ1dGUoJG5hbWVPckFsaWFzLCAwLCAxKTsKKyAgICBteSAkbmFtZSA9ICRuYW1lc0FuZEFsaWFz
ZXNUb05hbWV7JG5hbWVPckFsaWFzfTsKKyAgICBteSAkcHJvcGVydHlJZCA9ICRuYW1lVG9JZHsk
bmFtZXNBbmRBbGlhc2VzVG9OYW1leyRuYW1lfX07CisgICAgCisgICAgbXkgQGV4dGVuZGVkQXR0
cmlidXRlVmFsdWVzID0gKCJDU1NQcm9wZXJ0eT0ke3Byb3BlcnR5SWR9Iik7CisgICAgcHVzaChA
ZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMsICJFbmFibGVkQnlTZXR0aW5nPSR7c2V0dGluZ3NGbGFn
c3skbmFtZX19IikgaWYgJHNldHRpbmdzRmxhZ3N7JG5hbWV9OworICAgIHB1c2goQGV4dGVuZGVk
QXR0cmlidXRlVmFsdWVzLCAiRW5hYmxlZEF0UnVudGltZT0ke3J1bnRpbWVGbGFnc3skbmFtZX19
IikgaWYgJHJ1bnRpbWVGbGFnc3skbmFtZX07CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlcyA9
IGpvaW4oIiwgIiwgQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzKTsKKworICAgIHByaW50IENTU19T
VFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMsICR7
ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgY3NzJHtjYW1lbENhc2VkQXR0cmlidXRlTmFtZX07XG4iOworICAgIHByaW50
IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlv
bnMsICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgQ3NzJHtjYW1lbENhc2VkQXR0cmlidXRlTmFtZX07XG4iOworICAg
IHByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VS
ZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgcG9zJHtjYW1lbENhc2VkQXR0cmlidXRlTmFtZX07XG4i
OworICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgIiAg
ICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgUG9zJHtjYW1lbENhc2VkQXR0cmlidXRlTmFt
ZX07XG4iOworICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19J
REwgIiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgcGl4ZWwke2NhbWVsQ2FzZWRBdHRy
aWJ1dGVOYW1lfTtcbiI7CisgICAgcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZ
X05BTUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgJHtleHRlbmRlZEF0dHJpYnV0ZXN9XSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBQaXhlbCR7Y2FtZWxD
YXNlZEF0dHJpYnV0ZU5hbWV9O1xuIjsKK30KKworcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9O
X1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsKK307CitFT0YKKworY2xvc2UgQ1NTX1NUWUxF
X0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETDsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
Y3NzL3N0eWxlLWVudW1lcmF0ZS1wcm9wZXJ0aWVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9jc3Mvc3R5bGUtZW51bWVyYXRlLXByb3BlcnRpZXMuaHRtbAkocmV2aXNpb24g
MjY4NDk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtZW51bWVyYXRlLXByb3BlcnRp
ZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjMsMzMgKzIzLDYgQEAKICAgICAgICAgc2hvdWxk
QmVGYWxzZSgiJ2JvZ3VzLXJhbmRvbS1TdHJpbmcnIGluIGRvY3VtZW50LmJvZHkuc3R5bGUiKTsK
ICAgICAgICAgc2hvdWxkQmVUcnVlKCInY3NzVGV4dCcgaW4gZG9jdW1lbnQuYm9keS5zdHlsZSIp
OwogICAgICAgICBzaG91bGRCZVRydWUoIidnZXRQcm9wZXJ0eUNTU1ZhbHVlJyBpbiBkb2N1bWVu
dC5ib2R5LnN0eWxlIik7Ci0KLSAgICAgICAgLy8gVGVzdCBDU1MgcHJvcGVydHkgb3JkZXIuCi0g
ICAgICAgIHZhciBzdGFydGVkOwotICAgICAgICB2YXIgY3NzUHJvcGVydHlDb3VudCA9IDA7Ci0g
ICAgICAgIHZhciBwcmV2aW91czsKLSAgICAgICAgdmFyIHNlZW5GaWx0ZXI7Ci0gICAgICAgIGZv
ciAodmFyIHAgaW4gZG9jdW1lbnQuYm9keS5zdHlsZSkgewotICAgICAgICAgICAgaWYgKHAgPT09
ICJhbGlnbm1lbnRCYXNlbGluZSIpCi0gICAgICAgICAgICAgICAgc3RhcnRlZCA9IHRydWU7Ci0g
ICAgICAgICAgICBpZiAoIXN0YXJ0ZWQpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgICAgICBpZiAocCA9PT0gImZpbHRlciIpCi0gICAgICAgICAgICAgICAgc2VlbkZpbHRlciA9
IHRydWU7Ci0gICAgICAgICAgICBpZiAocHJldmlvdXMgJiYgcHJldmlvdXMgPj0gcCkgewotICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkludmFsaWQgQ1NTLW1hcHBlZCBwcm9wZXJ0eSBvcmRl
cjogJyIgKyBwICsgIicgYWZ0ZXIgJyIgKyBwcmV2aW91cyArICInIik7Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoKytjc3NQcm9wZXJ0eUNv
dW50IDw9IDQwMCkKLSAgICAgICAgICAgICAgICBwcmV2aW91cyA9IHA7Ci0gICAgICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoc2VlbkZpbHRlcikKLSAgICAgICAgICAgICAgICAg
ICAgdGVzdFBhc3NlZCgiVGhlIENTUyBwcm9wZXJ0eSBvcmRlciBpcyBjb3JyZWN0Iik7Ci0gICAg
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJUaGUgJ2Zp
bHRlcicgcHJvcGVydHkgd2FzIG5vdCBlbnVtZXJhdGVkIik7Ci0gICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KICAgICA8L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzc3N0eWxl
ZGVjbGFyYXRpb24tcHJvcGVydGllcy1kZXNjcmlwdG9yLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3NzdHlsZWRlY2xhcmF0aW9u
LXByb3BlcnRpZXMtZGVzY3JpcHRvci5odG1sCShyZXZpc2lvbiAyNjg0OTQpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzc3N0eWxlZGVjbGFyYXRpb24tcHJv
cGVydGllcy1kZXNjcmlwdG9yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUsOCArNSw5IEBACiAg
ICAgPHNjcmlwdD4KICAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhlIGRlc2NyaXB0
b3Igb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBwcm9wZXJ0aWVzLiIpOwogCi0gICAgICAgIHZhciBk
ZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkb2N1bWVudC5ib2R5
LnN0eWxlLCAnY29sb3InKTsKLSAgICAgICAgc2hvdWxkQmVUcnVlKCJkZXNjcmlwdG9yWyd3cml0
YWJsZSddIik7CisgICAgICAgIHZhciBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihkb2N1bWVudC5ib2R5LnN0eWxlLl9fcHJvdG9fXywgJ2NvbG9yJyk7CisgICAg
ICAgIHNob3VsZEJlVHlwZSgiZGVzY3JpcHRvclsnZ2V0J10iLCAiRnVuY3Rpb24iKTsKKyAgICAg
ICAgc2hvdWxkQmVUeXBlKCJkZXNjcmlwdG9yWydzZXQnXSIsICJGdW5jdGlvbiIpOwogICAgICAg
ICBzaG91bGRCZVRydWUoImRlc2NyaXB0b3JbJ2VudW1lcmFibGUnXSIpOwogICAgICAgICBzaG91
bGRCZVRydWUoImRlc2NyaXB0b3JbJ2NvbmZpZ3VyYWJsZSddIik7CiAgICAgPC9zY3JpcHQ+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vcHV0LW92ZXJyaWRlLXNob3VsZC1ub3QtdXNlLWljLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL3B1dC1vdmVycmlkZS1zaG91bGQt
bm90LXVzZS1pYy5odG1sCShyZXZpc2lvbiAyNjg0OTQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20v
cHV0LW92ZXJyaWRlLXNob3VsZC1ub3QtdXNlLWljLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgs
MTAgKzgsMTAgQEAKIDxzY3JpcHQ+CiAgICAgdGVzdChmdW5jdGlvbigpIHsKICAgICAgICAgZnVu
Y3Rpb24gdHJhbnNpdGlvbmVkKCkgewotICAgICAgICAgICAgc3R5bGUgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdwJykuc3R5bGU7CisgICAgICAgICAgICBkYXRhc2V0ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgncCcpLmRhdGFzZXQ7CiAgICAgICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwg
MjA7IGkrKykKLSAgICAgICAgICAgICAgICBzdHlsZVsncCcraV0gPSBpOwotICAgICAgICAgICAg
cmV0dXJuIHN0eWxlOworICAgICAgICAgICAgICAgIGRhdGFzZXRbJ3AnK2ldID0gaTsKKyAgICAg
ICAgICAgIHJldHVybiBkYXRhc2V0OwogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gcHV0
dGVyKG8pIHsKSW5kZXg6IExheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb25zLXBhcnNp
bmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9u
cy1wYXJzaW5nLmh0bWwJKHJldmlzaW9uIDI2ODQ5NCkKKysrIExheW91dFRlc3RzL3RyYW5zaXRp
b25zL3RyYW5zaXRpb25zLXBhcnNpbmcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzAsOCArMzAs
NiBAQCBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uUHJvcGVyCiBzaG91bGRCZSgi
Y29tcHV0ZWRTdHlsZS53ZWJraXRUcmFuc2l0aW9uUHJvcGVydHkiLCAiJ2FsbCciKTsKIAogc3R5
bGUudHJhbnNpdGlvblByb3BlcnR5ID0gIm5vbmUiOwotc2hvdWxkTm90QmUoIk9iamVjdC5rZXlz
KHN0eWxlKS5pbmRleE9mKCd0cmFuc2l0aW9uUHJvcGVydHknKSIsICItMSIpOwotc2hvdWxkQmUo
Ik9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd3ZWJraXRUcmFuc2l0aW9uUHJvcGVydHknKSIs
ICItMSIpOwogc2hvdWxkQmUoInN0eWxlLnRyYW5zaXRpb25Qcm9wZXJ0eSIsICInbm9uZSciKTsK
IHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25Qcm9wZXJ0eSIsICInbm9uZSciKTsK
IHNob3VsZEJlKCJzdHlsZS53ZWJraXRUcmFuc2l0aW9uUHJvcGVydHkiLCAiJ25vbmUnIik7CkBA
IC0xNzYsOCArMTc0LDYgQEAgc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJhbnNpdGlvbkR1cmF0
aQogc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUud2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uIiwgIicw
cyciKTsKIAogc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uID0gIjBzIjsKLXNob3VsZE5vdEJlKCJP
YmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZigndHJhbnNpdGlvbkR1cmF0aW9uJykiLCAiLTEiKTsK
LXNob3VsZEJlKCJPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZignd2Via2l0VHJhbnNpdGlvbkR1
cmF0aW9uJykiLCAiLTEiKTsKIHNob3VsZEJlKCJzdHlsZS50cmFuc2l0aW9uRHVyYXRpb24iLCAi
JzBzJyIpOwogc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uIiwgIicw
cyciKTsKIHNob3VsZEJlKCJzdHlsZS53ZWJraXRUcmFuc2l0aW9uRHVyYXRpb24iLCAiJzBzJyIp
OwpAQCAtMjU2LDggKzI1Miw2IEBAIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25U
aW1pbmcKIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLndlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5j
dGlvbiIsICInZWFzZSciKTsKIAogc3R5bGUudHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uID0gImxp
bmVhciI7Ci1zaG91bGROb3RCZSgiT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3RyYW5zaXRp
b25UaW1pbmdGdW5jdGlvbicpIiwgIi0xIik7Ci1zaG91bGRCZSgiT2JqZWN0LmtleXMoc3R5bGUp
LmluZGV4T2YoJ3dlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbicpIiwgIi0xIik7CiBzaG91
bGRCZSgic3R5bGUudHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIiwgIidsaW5lYXInIik7CiBzaG91
bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24iLCAiJ2xpbmVhcici
KTsKIHNob3VsZEJlKCJzdHlsZS53ZWJraXRUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb24iLCAiJ2xp
bmVhciciKTsKQEAgLTQ4NSw4ICs0NzksNiBAQCBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFu
c2l0aW9uRGVsYXkiCiBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS53ZWJraXRUcmFuc2l0aW9uRGVs
YXkiLCAiJzBzJyIpOwogCiBzdHlsZS50cmFuc2l0aW9uRGVsYXkgPSAiMHMiOwotc2hvdWxkTm90
QmUoIk9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd0cmFuc2l0aW9uRGVsYXknKSIsICItMSIp
Owotc2hvdWxkQmUoIk9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd3ZWJraXRUcmFuc2l0aW9u
RGVsYXknKSIsICItMSIpOwogc2hvdWxkQmUoInN0eWxlLnRyYW5zaXRpb25EZWxheSIsICInMHMn
Iik7CiBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uRGVsYXkiLCAiJzBzJyIpOwog
c2hvdWxkQmUoInN0eWxlLndlYmtpdFRyYW5zaXRpb25EZWxheSIsICInMHMnIik7CkBAIC01NjUs
OCArNTU3LDYgQEAgc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJhbnNpdGlvbiIsICInYQogc2hv
dWxkQmUoImNvbXB1dGVkU3R5bGUud2Via2l0VHJhbnNpdGlvbiIsICInYWxsIDBzIGVhc2UgMHMn
Iik7CiAKIHN0eWxlLnRyYW5zaXRpb24gPSAibm9uZSI7Ci1zaG91bGROb3RCZSgiT2JqZWN0Lmtl
eXMoc3R5bGUpLmluZGV4T2YoJ3RyYW5zaXRpb24nKSIsICItMSIpOwotc2hvdWxkQmUoIk9iamVj
dC5rZXlzKHN0eWxlKS5pbmRleE9mKCd3ZWJraXRUcmFuc2l0aW9uJykiLCAiLTEiKTsKIHNob3Vs
ZEJlKCJzdHlsZS50cmFuc2l0aW9uIiwgIidub25lJyIpOwogc2hvdWxkQmUoImNvbXB1dGVkU3R5
bGUudHJhbnNpdGlvbiIsICInbm9uZSAwcyBlYXNlIDBzJyIpOwogc2hvdWxkQmUoInN0eWxlLndl
YmtpdFRyYW5zaXRpb24iLCAiJ25vbmUnIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411449</attachid>
            <date>2020-10-15 10:00:09 -0700</date>
            <delta_ts>2020-10-15 10:14:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217623-20201015100009.patch</filename>
            <type>text/plain</type>
            <size>42294</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2ODUwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDIwLTEwLTEzICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIGJy
ZWFrcyBKUyBzcGVjIChwcm9wZXJ0aWVzIG5vdCBzaG93aW5nIHVwIGluIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eU5hbWVzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE3NjIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW1dJUF0KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG06CisgICAgICAgIChHZW5lcmF0ZUF0dHJpYnV0ZUdldHRlckJvZHlEZWZpbml0aW9uKToK
KyAgICAgICAgKEdlbmVyYXRlQXR0cmlidXRlU2V0dGVyQm9keURlZmluaXRpb24pOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uOgorICAgICAgICAqIGNzcy9D
U1NTdHlsZURlY2xhcmF0aW9uLmlkbDoKKyAgICAgICAgKiBjc3MvbWFrZXByb3AucGw6CisgICAg
ICAgIChjc3NQcm9wZXJ0eVRvSURMQXR0cmlidXRlKToKKwogMjAyMC0xMC0xNCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFZlY3Rvcml6ZSBkb3dubWl4aW5nIGlu
IEF1ZGlvQnVzOjpjcmVhdGVCeU1peGluZ1RvTW9ubygpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAkocmV2aXNpb24gMjY4NTA1KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTE4NzksNyArMTg3OSw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09V
UkNFUyAke1dlYkNvcmVfREUKIAogIyBHZW5lcmF0ZSBDU1MgcHJvcGVydHkgbmFtZXMKIGFkZF9j
dXN0b21fY29tbWFuZCgKLSAgICBPVVRQVVQgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9
L0NTU1Byb3BlcnRpZXMuanNvbiAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJv
cGVydHlOYW1lcy5oICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5h
bWVzLmNwcCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5n
cGVyZiAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVCdWlsZGVyR2VuZXJhdGVk
LmNwcCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVQcm9wZXJ0eVNob3J0aGFu
ZEZ1bmN0aW9ucy5oICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZVByb3BlcnR5
U2hvcnRoYW5kRnVuY3Rpb25zLmNwcAorICAgIE9VVFBVVCAke1dlYkNvcmVfREVSSVZFRF9TT1VS
Q0VTX0RJUn0vQ1NTUHJvcGVydGllcy5qc29uICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElS
fS9DU1NQcm9wZXJ0eU5hbWVzLmggJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1By
b3BlcnR5TmFtZXMuY3BwICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0
eU5hbWVzLmdwZXJmICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZUJ1aWxkZXJH
ZW5lcmF0ZWQuY3BwICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZVByb3BlcnR5
U2hvcnRoYW5kRnVuY3Rpb25zLmggJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0eWxl
UHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNf
RElSfS9DU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsCiAgICAgTUFJTl9ERVBF
TkRFTkNZICR7V0VCQ09SRV9ESVJ9L2Nzcy9tYWtlcHJvcC5wbAogICAgIERFUEVORFMgJHtXZWJD
b3JlX0NTU19QUk9QRVJUWV9OQU1FU30KICAgICBXT1JLSU5HX0RJUkVDVE9SWSAke1dlYkNvcmVf
REVSSVZFRF9TT1VSQ0VTX0RJUn0KQEAgLTE4ODksNiArMTg4OSw3IEBAIGFkZF9jdXN0b21fY29t
bWFuZCgKIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke1dlYkNvcmVfREVSSVZFRF9TT1VS
Q0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5jcHApCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJD
RVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0eWxlQnVpbGRlckdlbmVyYXRlZC5j
cHApCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNF
U19ESVJ9L1N0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwKQorbGlzdChBUFBFTkQg
V2ViQ29yZV9JRExfRklMRVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1N0eWxl
RGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5pZGwpCiBBRERfU09VUkNFX1dFQkNPUkVfREVSSVZF
RF9ERVBFTkRFTkNJRVMoJHtXRUJDT1JFX0RJUn0vY3NzL0NTU1BhcnNlci5jcHAgQ1NTVmFsdWVL
ZXl3b3Jkcy5oKQogCiAjIEdlbmVyYXRlIENTUyB2YWx1ZSBrZXl3b3JkcwpJbmRleDogU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHJldmlzaW9u
IDI2ODUwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDYgKzMsNyBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9CeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5QnVpbHRpbnMuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTUHJvcGVydHlOYW1lcy5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1Byb3BlcnR5TmFt
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTU3R5
bGVEZWNsYXJhdGlvbitQcm9wZXJ0eU5hbWVzLmlkbAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTVmFsdWVLZXl3b3Jkcy5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1ZhbHVlS2V5d29yZHMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ29sb3JEYXRhLmNwcApAQCAt
MjkwLDYgKzI5MSw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWIK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTUnVsZS5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU1J1bGVM
aXN0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlND
U1NSdWxlTGlzdC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0NTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5jcHAKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbitQcm9w
ZXJ0eU5hbWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbi5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU1N0eWxlUnVsZS5jcHAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjY4NTA1KQorKysgU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTMyNyw2ICsxMzI3
LDcgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkveG1sL1hQYXRoUmVzdWx0
LmlkbCBcCiAgICAgJChXZWJDb3JlKS94bWwvWFNMVFByb2Nlc3Nvci5pZGwgXAogICAgIEludGVy
bmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRsIFwKKyAgICBDU1NTdHlsZURlY2xhcmF0aW9uK1Byb3Bl
cnR5TmFtZXMuaWRsIFwKICMKIAogIyAtLS0tLS0tLQpAQCAtMTQxOCw2ICsxNDE5LDcgQEAgYWxs
IDogXAogICAgIFN0eWxlQnVpbGRlckdlbmVyYXRlZC5jcHAgXAogICAgIFN0eWxlUHJvcGVydHlT
aG9ydGhhbmRGdW5jdGlvbnMuY3BwIFwKICAgICBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rp
b25zLmggXAorICAgIENTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5pZGwgXAogICAg
IFVzZXJBZ2VudFN0eWxlU2hlZXRzLmggXAogICAgIFdlYktpdEZvbnRGYW1pbHlOYW1lcy5jcHAg
XAogICAgIFdlYktpdEZvbnRGYW1pbHlOYW1lcy5oIFwKQEAgLTE0NDUsNiArMTQ0Nyw3IEBAIENT
U19QUk9QRVJUWV9OQU1FX0ZJTEVTID0gXAogICAgIFN0eWxlQnVpbGRlckdlbmVyYXRlZC5jcHAg
XAogICAgIFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwIFwKICAgICBTdHlsZVBy
b3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmggXAorICAgIENTU1N0eWxlRGVjbGFyYXRpb24rUHJv
cGVydHlOYW1lcy5pZGwgXAogIwogQ1NTX1BST1BFUlRZX05BTUVfRklMRVNfUEFUVEVSTlMgPSAk
KHN1YnN0IC4sJSwkKENTU19QUk9QRVJUWV9OQU1FX0ZJTEVTKSkKIApJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlz
aW9uIDI2ODUwNSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xMTg3LDE1ICsxMTg3LDEyIEBAIHN1YiBHZW5l
cmF0ZUludm9rZU5hbWVkUHJvcGVydHlTZXR0ZXIKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRp
bmRlbnQgLiAiYXV0byBuYXRpdmVWYWx1ZSA9ICR7bmF0aXZlVmFsdWV9O1xuIik7CiAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gIlJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29w
ZSwgdHJ1ZSk7XG4iKTsKIAotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJib29s
IGlzUHJvcGVydHlTdXBwb3J0ZWQgPSB0cnVlO1xuIikgaWYgJG5hbWVkU2V0dGVyT3BlcmF0aW9u
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDYWxsTmFtZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVkUHJv
cGVydGllc307Ci0KICAgICBteSAkbmFtZWRTZXR0ZXJGdW5jdGlvbk5hbWUgPSAkbmFtZWRTZXR0
ZXJPcGVyYXRpb24tPm5hbWUgfHwgInNldE5hbWVkSXRlbSI7CiAgICAgbXkgJG5hdGl2ZVZhbHVl
UGFzc0V4cHJlc3Npb24gPSBQYXNzQXJndW1lbnRFeHByZXNzaW9uKCJuYXRpdmVWYWx1ZSIsICRh
cmd1bWVudCk7CiAKICAgICBteSBAYXJndW1lbnRzID0gKCk7CiAgICAgcHVzaChAYXJndW1lbnRz
LCAicHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSIpOwogICAgIHB1c2goQGFyZ3Vt
ZW50cywgJG5hdGl2ZVZhbHVlUGFzc0V4cHJlc3Npb24pOwotICAgIHB1c2goQGFyZ3VtZW50cywg
ImlzUHJvcGVydHlTdXBwb3J0ZWQiKSBpZiAkbmFtZWRTZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0NhbGxOYW1lZFNldHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9wZXJ0aWVzfTsK
IAogICAgIG15ICRmdW5jdGlvblN0cmluZyA9ICJ0aGlzT2JqZWN0LT53cmFwcGVkKCkuJHtuYW1l
ZFNldHRlckZ1bmN0aW9uTmFtZX0oIiAuIGpvaW4oIiwgIiwgQGFyZ3VtZW50cykgLiAiKSI7CiAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gImludm9rZUZ1bmN0b3JQcm9wYWdhdGlu
Z0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBb
Jl0geyByZXR1cm4gJHtmdW5jdGlvblN0cmluZ307IH0pO1xuIik7CkBAIC0xMjUwLDEwICsxMjQ3
LDYgQEAgc3ViIEdlbmVyYXRlUHV0CiAgICAgICAgIH0KIAogICAgICAgICBHZW5lcmF0ZUludm9r
ZU5hbWVkUHJvcGVydHlTZXR0ZXIoJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIg
ICAgICAgICIsICRpbnRlcmZhY2UsICRuYW1lZFNldHRlck9wZXJhdGlvbiwgInZhbHVlIik7Ci0g
ICAgICAgIGlmICgkbmFtZWRTZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e0Nh
bGxOYW1lZFNldHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9wZXJ0aWVzfSkgewotICAgICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgICAgIGlmICghaXNQ
cm9wZXJ0eVN1cHBvcnRlZClcbiIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAk
YWRkaXRpb25hbEluZGVudCAuICIgICAgICAgICAgICByZXR1cm4gSlNPYmplY3Q6OnB1dCh0aGlz
T2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9w
ZXJ0eVNsb3QpO1xuIik7Ci0gICAgICAgIH0KICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAk
YWRkaXRpb25hbEluZGVudCAuICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAKICAgICAgICAg
aWYgKCEkbGVnYWN5T3ZlcnJpZGVCdWlsdGlucykgewpAQCAtMTI4Niw3ICsxMjc5LDcgQEAgc3Vi
IEdlbmVyYXRlUHV0QnlJbmRleAogICAgIG15ICRpbmRleGVkU2V0dGVyT3BlcmF0aW9uID0gR2V0
SW5kZXhlZFNldHRlck9wZXJhdGlvbigkaW50ZXJmYWNlKTsKICAgICAKICAgICBteSAkbGVnYWN5
T3ZlcnJpZGVCdWlsdGlucyA9ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0V4dGVuZGVkQXR0cmli
dXRlKCRpbnRlcmZhY2UsICJMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIik7Ci0gICAgbXkgJGVsbGlk
ZXNDYWxsc1RvQmFzZSA9ICgkbmFtZWRTZXR0ZXJPcGVyYXRpb24gJiYgJGxlZ2FjeU92ZXJyaWRl
QnVpbHRpbnMpICYmICEkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntQbHVnaW59ICYm
ICEkbmFtZWRTZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NhbGxOYW1lZFNl
dHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9wZXJ0aWVzfTsKKyAgICBteSAkZWxsaWRlc0NhbGxzVG9C
YXNlID0gKCRuYW1lZFNldHRlck9wZXJhdGlvbiAmJiAkbGVnYWN5T3ZlcnJpZGVCdWlsdGlucykg
JiYgISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e1BsdWdpbn07CiAgICAgCiAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiYm9vbCAke2NsYXNzTmFtZX06OnB1dEJ5SW5kZXgoSlNDZWxs
KiBjZWxsLCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgdW5zaWduZWQgaW5k
ZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wiIC4gKCEkZWxsaWRlc0NhbGxzVG9CYXNlID8gIiBzaG91
bGRUaHJvdyIgOiAiIikgLiAiKVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7
CkBAIC0xMzI4LDEwICsxMzIxLDYgQEAgc3ViIEdlbmVyYXRlUHV0QnlJbmRleAogICAgICAgICB9
CiAgICAgICAgIAogICAgICAgICBHZW5lcmF0ZUludm9rZU5hbWVkUHJvcGVydHlTZXR0ZXIoJG91
dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgIiwgJGludGVyZmFjZSwgJG5hbWVk
U2V0dGVyT3BlcmF0aW9uLCAidmFsdWUiKTsKLSAgICAgICAgaWYgKCRuYW1lZFNldHRlck9wZXJh
dGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q2FsbE5hbWVkU2V0dGVyT25seUZvclN1cHBvcnRl
ZFByb3BlcnRpZXN9KSB7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlv
bmFsSW5kZW50IC4gIiAgICBpZiAoIWlzUHJvcGVydHlTdXBwb3J0ZWQpXG4iKTsKLSAgICAgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGFkZGl0aW9uYWxJbmRlbnQgLiAiICAgICAgICByZXR1
cm4gSlNPYmplY3Q6OnB1dEJ5SW5kZXgoY2VsbCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgaW5kZXgs
IHZhbHVlLCBzaG91bGRUaHJvdyk7XG4iKTsKLSAgICAgICAgfQogICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50IC4gIiAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAg
ICAgICAKICAgICAgICAgaWYgKCEkbGVnYWN5T3ZlcnJpZGVCdWlsdGlucykgewpAQCAtMTQ3NSwx
MCArMTQ2NCw3IEBAIHN1YiBHZW5lcmF0ZURlZmluZU93blByb3BlcnR5CiAgICAgICAgICAgICAK
ICAgICAgICAgICAgICMgMi4yLjIuIEludm9rZSB0aGUgbmFtZWQgcHJvcGVydHkgc2V0dGVyIHdp
dGggUCBhbmQgRGVzYy5bW1ZhbHVlXV0uCiAgICAgICAgICAgICBHZW5lcmF0ZUludm9rZU5hbWVk
UHJvcGVydHlTZXR0ZXIoJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgICAg
ICIsICRpbnRlcmZhY2UsICRuYW1lZFNldHRlck9wZXJhdGlvbiwgInByb3BlcnR5RGVzY3JpcHRv
ci52YWx1ZSgpIik7Ci0gICAgICAgICAgICBpZiAoJG5hbWVkU2V0dGVyT3BlcmF0aW9uLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPntDYWxsTmFtZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVydGll
c30pIHsKLSAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5k
ZW50IC4gIiAgICBpZiAoIWlzUHJvcGVydHlTdXBwb3J0ZWQpXG4iKTsKLSAgICAgICAgICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50IC4gIiAgICAgICAgcmV0dXJu
IEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3Qs
IHByb3BlcnR5TmFtZSwgcHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7XG4iKTsKLSAg
ICAgICAgICAgIH0KKwogICAgICAgICAgICAgIyAyLjIuMy4gUmV0dXJuIHRydWUuCiAgICAgICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50IC4gIiAgICAgICAgcmV0
dXJuIHRydWU7XG4iKTsKICAgICAgICAgfQpAQCAtMTg1Myw3ICsxODM5LDcgQEAgc3ViIE1hbmds
ZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lCiAKICAgICAkbmFtZSA9fiBzLy0vX2Rhc2hfL2c7CiAK
LSAgICByZXR1cm4gJG5hbWU7CisgICAgcmV0dXJuICRuYW1lID1+IC9eXy8gPyAkbmFtZSA6ICdf
JyAuICRuYW1lOwogfQogCiBzdWIgR2V0QXR0cmlidXRlR2V0dGVyTmFtZQpAQCAtMTg2MSw5ICsx
ODQ3LDkgQEAgc3ViIEdldEF0dHJpYnV0ZUdldHRlck5hbWUKICAgICBteSAoJGludGVyZmFjZSwg
JGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSkgPSBAXzsKIAogICAgIHJldHVybiBHZXRKU0J1aWx0aW5G
dW5jdGlvbk5hbWUoJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSkgaWYgSXNKU0J1aWx0aW4oJGludGVy
ZmFjZSwgJGF0dHJpYnV0ZSk7Ci0gICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0
KCRjbGFzc05hbWUpIC4gIkNvbnN0cnVjdG9yIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0
KE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpKSBpZiAkYXR0
cmlidXRlLT5pc1N0YXRpYzsKLSAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3Qo
JGNsYXNzTmFtZSkgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdChNYW5nbGVBdHRyaWJ1dGVP
ckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSkgLiAiQ29uc3RydWN0b3IiIGlmICRjb2Rl
R2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVHlwZSgkYXR0cmlidXRlLT50eXBlKTsKLSAgICByZXR1
cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAkY29kZUdlbmVyYXRv
ci0+V0tfdWNmaXJzdChNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5u
YW1lKSk7CisgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUp
IC4gIkNvbnN0cnVjdG9yIiAuIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1
dGUtPm5hbWUpIGlmICRhdHRyaWJ1dGUtPmlzU3RhdGljOworICAgIHJldHVybiAkY29kZUdlbmVy
YXRvci0+V0tfbGNmaXJzdCgkY2xhc3NOYW1lKSAuIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25O
YW1lKCRhdHRyaWJ1dGUtPm5hbWUpIC4gIkNvbnN0cnVjdG9yIiBpZiAkY29kZUdlbmVyYXRvci0+
SXNDb25zdHJ1Y3RvclR5cGUoJGF0dHJpYnV0ZS0+dHlwZSk7CisgICAgcmV0dXJuICRjb2RlR2Vu
ZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUpIC4gTWFuZ2xlQXR0cmlidXRlT3JGdW5jdGlv
bk5hbWUoJGF0dHJpYnV0ZS0+bmFtZSk7CiB9CiAKIHN1YiBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1l
CkBAIC0xODcxLDkgKzE4NTcsOSBAQCBzdWIgR2V0QXR0cmlidXRlU2V0dGVyTmFtZQogICAgIG15
ICgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKSA9IEBfOwogCiAgICAgcmV0dXJu
ICJzZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoR2V0SlNCdWlsdGluRnVuY3Rpb25O
YW1lKCRjbGFzc05hbWUsICRhdHRyaWJ1dGUpKSBpZiBJc0pTQnVpbHRpbigkaW50ZXJmYWNlLCAk
YXR0cmlidXRlKTsKLSAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJz
dCgkY2xhc3NOYW1lKSAuICJDb25zdHJ1Y3RvciIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJz
dChNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSkgaWYgJGF0
dHJpYnV0ZS0+aXNTdGF0aWM7Ci0gICAgcmV0dXJuICJzZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldL
X3VjZmlyc3QoJGNsYXNzTmFtZSkgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdChNYW5nbGVB
dHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSkgLiAiQ29uc3RydWN0b3Ii
IGlmICRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVHlwZSgkYXR0cmlidXRlLT50eXBlKTsK
LSAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY2xhc3NOYW1l
KSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25O
YW1lKCRhdHRyaWJ1dGUtPm5hbWUpKTsKKyAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRv
ci0+V0tfdWNmaXJzdCgkY2xhc3NOYW1lKSAuICJDb25zdHJ1Y3RvciIgLiBNYW5nbGVBdHRyaWJ1
dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSBpZiAkYXR0cmlidXRlLT5pc1N0YXRp
YzsKKyAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY2xhc3NO
YW1lKSAuIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpIC4g
IkNvbnN0cnVjdG9yIiBpZiAkY29kZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3RvclR5cGUoJGF0dHJp
YnV0ZS0+dHlwZSk7CisgICAgcmV0dXJuICJzZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmly
c3QoJGNsYXNzTmFtZSkgLiBNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRl
LT5uYW1lKTsKIH0KIAogc3ViIEdldEZ1bmN0aW9uTmFtZQpAQCAtMTg4Niw3ICsxODcyLDcgQEAg
c3ViIEdldEZ1bmN0aW9uTmFtZQogICAgICRmdW5jdGlvbk5hbWUgPSAiU3ltYm9sSXRlcmF0b3Ii
IGlmICRmdW5jdGlvbk5hbWUgZXEgIltTeW1ib2wuSXRlcmF0b3JdIjsKIAogICAgIG15ICRraW5k
ID0gJG9wZXJhdGlvbi0+aXNTdGF0aWMgPyAiQ29uc3RydWN0b3IiIDogKE9wZXJhdGlvblNob3Vs
ZEJlT25JbnN0YW5jZSgkaW50ZXJmYWNlLCAkb3BlcmF0aW9uKSA/ICJJbnN0YW5jZSIgOiAiUHJv
dG90eXBlIik7Ci0gICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05h
bWUpIC4gJGtpbmQgLiAiRnVuY3Rpb24iIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoTWFu
Z2xlQXR0cmlidXRlT3JGdW5jdGlvbk5hbWUoJGZ1bmN0aW9uTmFtZSkpOworICAgIHJldHVybiAk
Y29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkY2xhc3NOYW1lKSAuICRraW5kIC4gIkZ1bmN0aW9u
IiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRmdW5jdGlvbk5hbWUpOwogfQogCiBzdWIg
R2V0RnVsbHlRdWFsaWZpZWRJbXBsZW1lbnRhdGlvbkNhbGxOYW1lCkBAIC0yMjA0LDggKzIxOTAs
NiBAQCBzdWIgSW5zdGFuY2VPdmVycmlkZXNEZWZpbmVPd25Qcm9wZXJ0eQogewogICAgIG15ICRp
bnRlcmZhY2UgPSBzaGlmdDsKIAotICAgIHJldHVybiAwIGlmICRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0RlZmF1bHREZWZpbmVPd25Qcm9wZXJ0eX07Ci0KICAgICByZXR1cm4gJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tRGVmaW5lT3duUHJvcGVydHl9CiAg
ICAgICAgIHx8IEdldEluZGV4ZWRTZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSkKICAgICAgICAg
fHwgR2V0TmFtZWRTZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSk7CkBAIC0zOTc5LDYgKzM5NjMs
OSBAQCBzdWIgR2V0U2tpcFZUYWJsZVZhbGlkYXRpb25Gb3JJbnRlcmZhY2UKIHN1YiBUb01ldGhv
ZE5hbWUKIHsKICAgICBteSAkcGFyYW0gPSBzaGlmdDsKKyAgICAKKyAgICByZXR1cm4gJHBhcmFt
IGlmICRwYXJhbSA9fiAvXkNTU09NLzsKKwogICAgIG15ICRyZXQgPSBsY2ZpcnN0KCRwYXJhbSk7
CiAgICAgJHJldCA9fiBzL2NTUy9jc3MvIGlmICRyZXQgPX4gL15jU1MvOwogICAgICRyZXQgPX4g
cy9kT00vZG9tLyBpZiAkcmV0ID1+IC9eZE9NLzsKQEAgLTUzMjIsNiArNTMwOSwxNSBAQCBzdWIg
R2VuZXJhdGVBdHRyaWJ1dGVHZXR0ZXJCb2R5RGVmaW5pdGlvCiAgICAgICAgICAgICBBZGRUb0lt
cGxJbmNsdWRlcygiSlMiIC4gJGNvbnN0cnVjdG9yVHlwZSAuICIuaCIsICRjb25kaXRpb25hbCk7
CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEpTIiAuICRjb25z
dHJ1Y3RvclR5cGUgLiAiOjoke2NvbnN0cnVjdG9yR2V0dGVyfShKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7XG4iKTsKICAgICAgICAg
fQorICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NTU1Byb3Bl
cnR5fSkgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyJDU1NQcm9wZXJ0eU5hbWVzLmgifSA9IDE7
CisgICAgICAgIG15ICRwcm9wZXJ0eUlEID0gJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Q1NTUHJvcGVydHl9OworICAgICAgICAKKyAgICAgICAgbXkgJGdldHRlck5hbWUgPSAkYXR0
cmlidXRlLT50eXBlLT5pc1VuaW9uID8gImdldFByb3BlcnR5VmFsdWVJbnRlcm5hbEZvclBvc09y
UGl4ZWxQcmVmaXhlZCIgOiAiZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsIjsKKyAgICAgICAgCisg
ICAgICAgIG15ICR0b0pTRXhwcmVzc2lvbiA9IE5hdGl2ZVRvSlNWYWx1ZVVzaW5nUmVmZXJlbmNl
cygkYXR0cmlidXRlLCAkaW50ZXJmYWNlLCAiaW1wbC4ke2dldHRlck5hbWV9KENTU1Byb3BlcnR5
JHtwcm9wZXJ0eUlEfSkiLCAiKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkiKTsKKyAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQo
KTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICgke3RvSlNFeHByZXNzaW9ufSkpO1xuIik7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NhY2hlZEF0dHJp
YnV0ZX0pIHsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoSlNWYWx1
ZSBjYWNoZWRWYWx1ZSA9IHRoaXNPYmplY3QubV8iIC4gJGF0dHJpYnV0ZS0+bmFtZSAuICIuZ2V0
KCkpXG4iKTsKQEAgLTU0NjYsNiArNTQ2MiwyMyBAQCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVTZXR0
ZXJCb2R5RGVmaW5pdGlvCiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB2bS5oZWFw
LndyaXRlQmFycmllcigmdGhpc09iamVjdCwgdmFsdWUpO1xuIik7CiAgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICBlbnN1cmVTdGlsbEFsaXZlSGVyZSh2YWx1ZSk7XG5cbiIpOwogICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIHRydWU7XG4iKTsKKyAgICB9IGVs
c2lmICgkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDU1NQcm9wZXJ0eX0pIHsKKyAg
ICAgICAgJGltcGxJbmNsdWRlc3siQ1NTUHJvcGVydHlOYW1lcy5oIn0gPSAxOworCisgICAgICAg
IG15ICRwcm9wZXJ0eUlEID0gJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q1NTUHJv
cGVydHl9OworICAgICAgICAKKyAgICAgICAgbXkgJHNldHRlck5hbWUgPSAkYXR0cmlidXRlLT50
eXBlLT5pc1VuaW9uID8gInNldFByb3BlcnR5VmFsdWVJbnRlcm5hbEZvclBvc09yUGl4ZWxQcmVm
aXhlZCIgOiAic2V0UHJvcGVydHlWYWx1ZUludGVybmFsIjsKKyAgICAgICAgCisgICAgICAgIG15
ICRleGNlcHRpb25UaHJvd2VyID0gR2V0QXR0cmlidXRlRXhjZXB0aW9uVGhyb3dlcigkaW50ZXJm
YWNlLCAkYXR0cmlidXRlKTsKKyAgICAgICAgbXkgJHRvTmF0aXZlRXhwcmVzc2lvbiA9IEpTVmFs
dWVUb05hdGl2ZSgkaW50ZXJmYWNlLCAkYXR0cmlidXRlLCAidmFsdWUiLCAkYXR0cmlidXRlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbH0sICImbGV4aWNhbEdsb2JhbE9iamVjdCIs
ICJsZXhpY2FsR2xvYmFsT2JqZWN0IiwgInRoaXNPYmplY3QiLCAiKnRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCkiLCAkZXhjZXB0aW9uVGhyb3dlcik7CisKKyAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTtcbiIpOworICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0byBuYXRpdmVWYWx1ZSA9ICR7dG9OYXRpdmVF
eHByZXNzaW9ufTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIEF0dHJpYnV0ZVNldHRlcjo6Y2FsbChsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBbJl0ge1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICAgICAgcmV0dXJuIGltcGwuJHtzZXR0ZXJOYW1lfShDU1NQcm9wZXJ0eSR7cHJvcGVydHlJRH0s
IFdURk1vdmUobmF0aXZlVmFsdWUpKTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgfSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiB0
cnVlO1xuIik7CiAgICAgfSBlbHNpZiAoJGlzQ29uc3RydWN0b3IpIHsKICAgICAgICAgbXkgJGNv
bnN0cnVjdG9yVHlwZSA9ICRhdHRyaWJ1dGUtPnR5cGUtPm5hbWU7CiAgICAgICAgICRjb25zdHJ1
Y3RvclR5cGUgPX4gcy9Db25zdHJ1Y3RvciQvLzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uCShyZXZpc2lvbiAyNjg1MDUp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgko
d29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksMTAgQEAKICAgICAgICAgICAgICAgICAidXJsIjog
Imh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2N1c3RvbS1lbGVtZW50cy5o
dG1sI2NlcmVhY3Rpb25zIgogICAgICAgICAgICAgfQogICAgICAgICB9LAorICAgICAgICAiQ1NT
UHJvcGVydHkiOiB7CisgICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJhdHRyaWJ1dGUi
XSwKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbIioiXQorICAgICAgICB9LAogICAgICAgICAiQ2Fj
aGVkQXR0cmlidXRlIjogewogICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiYXR0cmli
dXRlIl0KICAgICAgICAgfSwKQEAgLTQ5LDkgKzUzLDYgQEAKICAgICAgICAgIkNhbGxiYWNrVGhp
c09iamVjdCI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImNhbGxiYWNrLWZ1
bmN0aW9uIiwgIm9wZXJhdGlvbiJdCiAgICAgICAgIH0sCi0gICAgICAgICJDYWxsTmFtZWRTZXR0
ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVydGllcyI6IHsKLSAgICAgICAgICAgICJjb250ZXh0c0Fs
bG93ZWQiOiBbIm9wZXJhdGlvbiJdCi0gICAgICAgIH0sCiAgICAgICAgICJDYWxsV2l0aCI6IHsK
ICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImF0dHJpYnV0ZSIsICJvcGVyYXRpb24i
XSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbIkRvY3VtZW50IiwgIkV4ZWNTdGF0ZSIsICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0IiwgIkdsb2JhbE9iamVjdCIsICJBY3RpdmVXaW5kb3ciLCAiRmly
c3RXaW5kb3ciLCAiUmVzcG9uc2libGVEb2N1bWVudCIsICJXb3JsZCJdLApAQCAtMTU3LDkgKzE1
OCw2IEBACiAgICAgICAgICJEZWZhdWx0IjogewogICAgICAgICAgICAgImNvbnRleHRzQWxsb3dl
ZCI6IFsib3BlcmF0aW9uIl0KICAgICAgICAgfSwKLSAgICAgICAgIkRlZmF1bHREZWZpbmVPd25Q
cm9wZXJ0eSI6IHsKLSAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImludGVyZmFjZSJd
Ci0gICAgICAgIH0sCiAgICAgICAgICJEaXNhYmxlZEJ5UXVpcmsiOiB7CiAgICAgICAgICAgICAi
Y29udGV4dHNBbGxvd2VkIjogWyJpbnRlcmZhY2UiLCAiZGljdGlvbmFyeSIsICJlbnVtIiwgImF0
dHJpYnV0ZSIsICJvcGVyYXRpb24iLCAiY29uc3RhbnQiLCAiZGljdGlvbmFyeS1tZW1iZXIiLCAi
aW5jbHVkZXMiXSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbIioiXSwKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlzaW9uIDI2ODUwNSkKKysr
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjY4LDQ4ICsyNjgsOCBAQCBzdGF0aWMgQ1NTUHJvcGVydHlJbmZvIHByb3BlcnR5SW5m
b0Zyb21KCiAKIH0KIAotQ1NTUHJvcGVydHlJRCBDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRDU1NQ
cm9wZXJ0eUlERnJvbUphdmFTY3JpcHRQcm9wZXJ0eU5hbWUoY29uc3QgQXRvbVN0cmluZyYgcHJv
cGVydHlOYW1lKQotewotICAgIHJldHVybiBwcm9wZXJ0eUluZm9Gcm9tSmF2YVNjcmlwdENTU1By
b3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUsIG51bGxwdHIpLnByb3BlcnR5SUQ7Ci19Ci0KLU9wdGlv
bmFsPFZhcmlhbnQ8U3RyaW5nLCBkb3VibGU+PiBDU1NTdHlsZURlY2xhcmF0aW9uOjpuYW1lZEl0
ZW0oY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lKQorRXhjZXB0aW9uT3I8dm9pZD4gQ1NT
U3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJvcGVydHlWYWx1ZUludGVybmFsKENTU1Byb3BlcnR5SUQg
cHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBhdXRvKiBzZXR0aW5ncyA9
IHBhcmVudEVsZW1lbnQoKSA/ICZwYXJlbnRFbGVtZW50KCktPmRvY3VtZW50KCkuc2V0dGluZ3Mo
KSA6IG51bGxwdHI7Ci0gICAgYXV0byBwcm9wZXJ0eUluZm8gPSBwcm9wZXJ0eUluZm9Gcm9tSmF2
YVNjcmlwdENTU1Byb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUsIHNldHRpbmdzKTsKLSAgICBpZiAo
IXByb3BlcnR5SW5mby5wcm9wZXJ0eUlEKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owot
Ci0gICAgYXV0byB2YWx1ZSA9IGdldFByb3BlcnR5Q1NTVmFsdWVJbnRlcm5hbChwcm9wZXJ0eUlu
Zm8ucHJvcGVydHlJRCk7Ci0gICAgaWYgKCF2YWx1ZSkgewotICAgICAgICAvLyBJZiB0aGUgcHJv
cGVydHkgaXMgYSBzaG9ydGhhbmQgcHJvcGVydHkgKHN1Y2ggYXMgInBhZGRpbmciKSwgaXQgY2Fu
IG9ubHkgYmUgYWNjZXNzZWQgdXNpbmcgZ2V0UHJvcGVydHlWYWx1ZS4KLSAgICAgICAgcmV0dXJu
IFZhcmlhbnQ8U3RyaW5nLCBkb3VibGU+IHsgZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsKHByb3Bl
cnR5SW5mby5wcm9wZXJ0eUlEKSB9OwotICAgIH0KLSAgICAKLSAgICBpZiAocHJvcGVydHlJbmZv
LmhhZFBpeGVsT3JQb3NQcmVmaXggJiYgaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkpIHsK
LSAgICAgICAgLy8gQ2FsbCB0aGlzIHZlcnNpb24gb2YgdGhlIGdldHRlciBzbyB0aGF0LCBlLmcu
LCBwaXhlbFRvcCByZXR1cm5zIHRvcCBhcyBhIG51bWJlcgotICAgICAgICAvLyBpbiBwaXhlbCB1
bml0cyBhbmQgcG9zVG9wIHNob3VsZCBkb2VzIHRoZSBzYW1lIF9pZl8gdGhpcyBpcyBhIHBvc2l0
aW9uZWQgZWxlbWVudC4KLSAgICAgICAgLy8gRklYTUU6IElmIG5vdCBhIHBvc2l0aW9uZWQgZWxl
bWVudCwgTVNJRSBkb2N1bWVudGF0aW9uIHNheXMgcG9zVG9wIHNob3VsZCByZXR1cm4gMDsgdGhp
cyBydWxlIGlzIG5vdCBpbXBsZW1lbnRlZC4KLSAgICAgICAgcmV0dXJuIFZhcmlhbnQ8U3RyaW5n
LCBkb3VibGU+IHsgZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkuZmxvYXRWYWx1
ZShDU1NVbml0VHlwZTo6Q1NTX1BYKSB9OwotICAgIH0KLQotICAgIHJldHVybiBWYXJpYW50PFN0
cmluZywgZG91YmxlPiB7IHZhbHVlLT5jc3NUZXh0KCkgfTsKLX0KLQotRXhjZXB0aW9uT3I8dm9p
ZD4gQ1NTU3R5bGVEZWNsYXJhdGlvbjo6c2V0TmFtZWRJdGVtKGNvbnN0IEF0b21TdHJpbmcmIHBy
b3BlcnR5TmFtZSwgU3RyaW5nIHZhbHVlLCBib29sJiBwcm9wZXJ0eVN1cHBvcnRlZCkKLXsKLSAg
ICBhdXRvKiBzZXR0aW5ncyA9IHBhcmVudEVsZW1lbnQoKSA/ICZwYXJlbnRFbGVtZW50KCktPmRv
Y3VtZW50KCkuc2V0dGluZ3MoKSA6IG51bGxwdHI7Ci0gICAgYXV0byBwcm9wZXJ0eUluZm8gPSBw
cm9wZXJ0eUluZm9Gcm9tSmF2YVNjcmlwdENTU1Byb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUsIHNl
dHRpbmdzKTsKLSAgICBpZiAoIXByb3BlcnR5SW5mby5wcm9wZXJ0eUlEKSB7Ci0gICAgICAgIHBy
b3BlcnR5U3VwcG9ydGVkID0gZmFsc2U7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotCi0g
ICAgcHJvcGVydHlTdXBwb3J0ZWQgPSB0cnVlOwotCi0gICAgaWYgKHByb3BlcnR5SW5mby5oYWRQ
aXhlbE9yUG9zUHJlZml4KQotICAgICAgICB2YWx1ZS5hcHBlbmQoInB4Iik7Ci0KICAgICBib29s
IGltcG9ydGFudCA9IGZhbHNlOwogICAgIGlmIChEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNo
b3VsZFJlc3BlY3RQcmlvcml0eUluQ1NTQXR0cmlidXRlU2V0dGVycygpKSB7CiAgICAgICAgIGF1
dG8gaW1wb3J0YW50SW5kZXggPSB2YWx1ZS5maW5kSWdub3JpbmdBU0NJSUNhc2UoIiFpbXBvcnRh
bnQiKTsKQEAgLTMxOSwzOCArMjc5LDQzIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENTU1N0eWxlRGVj
bGFyYXRpb246OnMKICAgICAgICAgfQogICAgIH0KIAotICAgIGF1dG8gc2V0UHJvcGVydHlJbnRl
cm5hbFJlc3VsdCA9IHNldFByb3BlcnR5SW50ZXJuYWwocHJvcGVydHlJbmZvLnByb3BlcnR5SUQs
IHZhbHVlLCBpbXBvcnRhbnQpOworICAgIGF1dG8gc2V0UHJvcGVydHlJbnRlcm5hbFJlc3VsdCA9
IHNldFByb3BlcnR5SW50ZXJuYWwocHJvcGVydHlJRCwgdmFsdWUsIGltcG9ydGFudCk7CiAgICAg
aWYgKHNldFByb3BlcnR5SW50ZXJuYWxSZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJl
dHVybiBzZXRQcm9wZXJ0eUludGVybmFsUmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKIAogICAg
IHJldHVybiB7IH07CiB9CiAKLVZlY3RvcjxBdG9tU3RyaW5nPiBDU1NTdHlsZURlY2xhcmF0aW9u
OjpzdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkgY29uc3QKK1ZhcmlhbnQ8ZG91YmxlLCBTdHJpbmc+
IENTU1N0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5VmFsdWVJbnRlcm5hbEZvclBvc09yUGl4
ZWxQcmVmaXhlZChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpCiB7Ci0gICAgc3RhdGljIHVuc2ln
bmVkIG51bU5hbWVzID0gMDsKLSAgICBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyogY29uc3QgY3Nz
UHJvcGVydHlOYW1lcyA9IFtdIHsKLSAgICAgICAgU3RyaW5nIG5hbWVzW251bUNTU1Byb3BlcnRp
ZXNdOwotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUNTU1Byb3BlcnRpZXM7ICsraSkg
ewotICAgICAgICAgICAgQ1NTUHJvcGVydHlJRCBpZCA9IHN0YXRpY19jYXN0PENTU1Byb3BlcnR5
SUQ+KGZpcnN0Q1NTUHJvcGVydHkgKyBpKTsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQg
dGFrZSBhY2NvdW50IGZvciBmbGFncyBpbiBzZXR0aW5ncygpLgotICAgICAgICAgICAgaWYgKGlz
RW5hYmxlZENTU1Byb3BlcnR5KGlkKSkKLSAgICAgICAgICAgICAgICBuYW1lc1tudW1OYW1lcysr
XSA9IGdldEpTUHJvcGVydHlOYW1lKGlkKTsKLSAgICAgICAgfQotICAgICAgICBzdGQ6OnNvcnQo
Jm5hbWVzWzBdLCAmbmFtZXNbbnVtTmFtZXNdLCBXVEY6OmNvZGVQb2ludENvbXBhcmVMZXNzVGhh
bik7Ci0gICAgICAgIGF1dG8qIGlkZW50aWZpZXJzID0gbmV3IEF0b21TdHJpbmdbbnVtTmFtZXNd
OwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtTmFtZXM7ICsraSkKLSAgICAg
ICAgICAgIGlkZW50aWZpZXJzW2ldID0gbmFtZXNbaV07Ci0gICAgICAgIHJldHVybiBpZGVudGlm
aWVyczsKLSAgICB9KCk7CisgICAgYXV0byB2YWx1ZSA9IGdldFByb3BlcnR5Q1NTVmFsdWVJbnRl
cm5hbChwcm9wZXJ0eUlEKTsKKyAgICBpZiAoIXZhbHVlKSB7CisgICAgICAgIC8vIElmIHRoZSBw
cm9wZXJ0eSBpcyBhIHNob3J0aGFuZCBwcm9wZXJ0eSAoc3VjaCBhcyAicGFkZGluZyIpLCBpdCBj
YW4gb25seSBiZSBhY2Nlc3NlZCB1c2luZyBnZXRQcm9wZXJ0eVZhbHVlLgorICAgICAgICByZXR1
cm4gZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsKHByb3BlcnR5SUQpOworICAgIH0KKyAgICAKKyAg
ICBpZiAoaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkpIHsKKyAgICAgICAgLy8gQ2FsbCB0
aGlzIHZlcnNpb24gb2YgdGhlIGdldHRlciBzbyB0aGF0LCBlLmcuLCBwaXhlbFRvcCByZXR1cm5z
IHRvcCBhcyBhIG51bWJlcgorICAgICAgICAvLyBpbiBwaXhlbCB1bml0cyBhbmQgcG9zVG9wIHNo
b3VsZCBkb2VzIHRoZSBzYW1lIF9pZl8gdGhpcyBpcyBhIHBvc2l0aW9uZWQgZWxlbWVudC4KKyAg
ICAgICAgLy8gRklYTUU6IElmIG5vdCBhIHBvc2l0aW9uZWQgZWxlbWVudCwgTVNJRSBkb2N1bWVu
dGF0aW9uIHNheXMgcG9zVG9wIHNob3VsZCByZXR1cm4gMDsgdGhpcyBydWxlIGlzIG5vdCBpbXBs
ZW1lbnRlZC4KKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFs
dWUpLmZsb2F0VmFsdWUoQ1NTVW5pdFR5cGU6OkNTU19QWCk7CisgICAgfQogCi0gICAgVmVjdG9y
PEF0b21TdHJpbmc+IHJlc3VsdDsKLSAgICByZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShu
dW1OYW1lcyk7CisgICAgcmV0dXJuIHZhbHVlLT5jc3NUZXh0KCk7Cit9CiAKLSAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbnVtTmFtZXM7ICsraSkKLSAgICAgICAgcmVzdWx0LnVuY2hlY2tl
ZEFwcGVuZChjc3NQcm9wZXJ0eU5hbWVzW2ldKTsKK0V4Y2VwdGlvbk9yPHZvaWQ+IENTU1N0eWxl
RGVjbGFyYXRpb246OnNldFByb3BlcnR5VmFsdWVJbnRlcm5hbEZvclBvc09yUGl4ZWxQcmVmaXhl
ZChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIFZhcmlhbnQ8ZG91YmxlLCBTdHJpbmc+IHZhbHVl
KQoreworICAgIFN0cmluZyBzdHJpbmdWYWx1ZSA9IFdURjo6c3dpdGNoT24odmFsdWUsIFsmXSAo
Y29uc3QgYXV0byYgaW5wdXQpIHsKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoc3RyaW5nLCAi
cHgiKTsKKyAgICB9KTsKIAotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIHNldFByb3Bl
cnR5VmFsdWVJbnRlcm5hbChwcm9wZXJ0eUlELCBXVEZNb3ZlKHN0cmluZ1ZhbHVlKSk7Cit9CisK
K0NTU1Byb3BlcnR5SUQgQ1NTU3R5bGVEZWNsYXJhdGlvbjo6Z2V0Q1NTUHJvcGVydHlJREZyb21K
YXZhU2NyaXB0UHJvcGVydHlOYW1lKGNvbnN0IEF0b21TdHJpbmcmIHByb3BlcnR5TmFtZSkKK3sK
KyAgICByZXR1cm4gcHJvcGVydHlJbmZvRnJvbUphdmFTY3JpcHRDU1NQcm9wZXJ0eU5hbWUocHJv
cGVydHlOYW1lLCBudWxscHRyKS5wcm9wZXJ0eUlEOwogfQogCiBTdHJpbmcgQ1NTU3R5bGVEZWNs
YXJhdGlvbjo6Y3NzRmxvYXQoKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVj
bGFyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNs
YXJhdGlvbi5oCShyZXZpc2lvbiAyNjg1MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVEZWNsYXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC03MiwxMiArNzIsMTIgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTdHlsZVNoZWV0KCkgY29uc3Qg
eyByZXR1cm4gbnVsbHB0cjsgfQogCi0gICAgLy8gQmluZGluZ3Mgc3VwcG9ydC4KLSAgICBPcHRp
b25hbDxWYXJpYW50PFN0cmluZywgZG91YmxlPj4gbmFtZWRJdGVtKGNvbnN0IEF0b21TdHJpbmcm
KTsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXROYW1lZEl0ZW0oY29uc3QgQXRvbVN0cmluZyYg
bmFtZSwgU3RyaW5nIHZhbHVlLCBib29sJiBwcm9wZXJ0eVN1cHBvcnRlZCk7Ci0gICAgVmVjdG9y
PEF0b21TdHJpbmc+IHN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSBjb25zdDsKKyAgICBFeGNlcHRp
b25Pcjx2b2lkPiBzZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWwoQ1NTUHJvcGVydHlJRCwgU3RyaW5n
KTsKKyAgICBWYXJpYW50PGRvdWJsZSwgU3RyaW5nPiBnZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWxG
b3JQb3NPclBpeGVsUHJlZml4ZWQoQ1NTUHJvcGVydHlJRCk7CisgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZpeGVkKENTU1Byb3Bl
cnR5SUQsIFZhcmlhbnQ8ZG91YmxlLCBTdHJpbmc+KTsKIAogICAgIHN0YXRpYyBDU1NQcm9wZXJ0
eUlEIGdldENTU1Byb3BlcnR5SURGcm9tSmF2YVNjcmlwdFByb3BlcnR5TmFtZShjb25zdCBBdG9t
U3RyaW5nJik7CisKIHByb3RlY3RlZDoKICAgICBDU1NTdHlsZURlY2xhcmF0aW9uKCkgPSBkZWZh
dWx0OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5p
ZGwJKHJldmlzaW9uIDI2ODUwNSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xh
cmF0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDcsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5LCAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0u
d2VpbmlnQGdtYWlsLmNvbT4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0xOCw0MCArMTgsMjkgQEAKICAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKK3R5cGVkZWYgVVNWU3RyaW5nIENTU09N
U3RyaW5nOworCiBbCiAgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCi0gICAgRGVmYXVs
dERlZmluZU93blByb3BlcnR5LAogICAgIEdlbmVyYXRlSXNSZWFjaGFibGUsCiAgICAgSlNDdXN0
b21IZWFkZXIsCiAgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgU2tpcFZUYWJsZVZhbGlk
YXRpb24sCiAgICAgRXhwb3NlZD1XaW5kb3cKIF0gaW50ZXJmYWNlIENTU1N0eWxlRGVjbGFyYXRp
b24gewotICAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIERPTVN0cmluZyBjc3NUZXh0OwotCi0g
ICAgRE9NU3RyaW5nIGdldFByb3BlcnR5VmFsdWUoRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7Ci0K
LSAgICBbQ0VSZWFjdGlvbnMsIE1heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgcmVtb3ZlUHJv
cGVydHkoRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7Ci0gICAgRE9NU3RyaW5nPyBnZXRQcm9wZXJ0
eVByaW9yaXR5KERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwotCi0gICAgW0NFUmVhY3Rpb25zLCBN
YXlUaHJvd0V4Y2VwdGlvbl0gdW5kZWZpbmVkIHNldFByb3BlcnR5KERPTVN0cmluZyBwcm9wZXJ0
eU5hbWUsIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gRE9NU3RyaW5nIHZhbHVlLCBvcHRpb25h
bCBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIERPTVN0cmluZyBwcmlvcml0eSA9ICIiKTsKLQor
ICAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIENTU09NU3RyaW5nIGNzc1RleHQ7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwotICAgIGdldHRlciBET01TdHJp
bmcgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICBnZXR0ZXIgQ1NTT01TdHJpbmcgaXRl
bSh1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICBDU1NPTVN0cmluZyBnZXRQcm9wZXJ0eVZhbHVl
KENTU09NU3RyaW5nIHByb3BlcnR5KTsKKyAgICAvLyBGSVhNRTogVGhlIHJldHVybiB2YWx1ZSBv
ZiAnZ2V0UHJvcGVydHlQcmlvcml0eScgc2hvdWxkIG5vdCBiZSBudWxsYWJsZS4KKyAgICBDU1NP
TVN0cmluZz8gZ2V0UHJvcGVydHlQcmlvcml0eShDU1NPTVN0cmluZyBwcm9wZXJ0eSk7CisgICAg
W0NFUmVhY3Rpb25zLCBNYXlUaHJvd0V4Y2VwdGlvbl0gdW5kZWZpbmVkIHNldFByb3BlcnR5KENT
U09NU3RyaW5nIHByb3BlcnR5LCBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IHZhbHVlLCBvcHRpb25hbCBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIHBy
aW9yaXR5ID0gIiIpOworICAgIFtDRVJlYWN0aW9ucywgTWF5VGhyb3dFeGNlcHRpb25dIENTU09N
U3RyaW5nIHJlbW92ZVByb3BlcnR5KENTU09NU3RyaW5nIHByb3BlcnR5KTsKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgQ1NTUnVsZT8gcGFyZW50UnVsZTsKKyAgICBbQ0VSZWFjdGlvbnNdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGNzc0Zsb2F0OwogCi0g
ICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBET01T
dHJpbmcgY3NzRmxvYXQ7Ci0KKyAgICAvLyBOb24tc3RhbmRhcmQuCiAgICAgRE9NU3RyaW5nPyBn
ZXRQcm9wZXJ0eVNob3J0aGFuZChvcHRpb25hbCBET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKICAg
ICBib29sZWFuIGlzUHJvcGVydHlJbXBsaWNpdChvcHRpb25hbCBET01TdHJpbmcgcHJvcGVydHlO
YW1lKTsKLQotICAgIC8vIFVzZSBuYW1lZCBnZXR0ZXJzL3NldHRlcnMgZm9yIGFsbCBzdXBwb3J0
IENTUyBwcm9wZXJ0eSBuYW1lcy4gVGhlIHNwZWMgc2F5cwotICAgIC8vIHRoZXNlIHNob3VsZCBi
ZSBub3JtYWwgYXR0cmlidXRlcywgYnV0IHRoZXJlIGFyZSB0b28gbWFueSBjb21iaW5hdGlvbnMg
d2l0aAotICAgIC8vIHByZWZpeGVzIGZvciB0aGlzIHRvIGJlIHByYWN0aWNhbC4gSWYgd2UgcmVt
b3ZlIGxlZ2FjeSBhbGlhc2VzLCB3ZSBzaG91bGQKLSAgICAvLyByZWNvbnNpZGVyIHRoaXMgZGVj
aXNpb24uCi0gICAgZ2V0dGVyIChET01TdHJpbmcgb3IgZG91YmxlKSAoRE9NU3RyaW5nIG5hbWUp
OwotICAgIFtDRVJlYWN0aW9ucywgQ2FsbE5hbWVkU2V0dGVyT25seUZvclN1cHBvcnRlZFByb3Bl
cnRpZXNdIHNldHRlciB1bmRlZmluZWQgKERPTVN0cmluZyBuYW1lLCBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIERPTVN0cmluZyB2YWx1ZSk7Ci0KLSAgICAvLyBUaGlzIG1ldGhvZCBpcyBkZXBy
ZWNhdGVkLCBhbmQgd2Ugd291bGQgbGlrZSB0byBkcm9wIHN1cHBvcnQgZm9yIGl0IHNvbWVkYXkK
ICAgICBEZXByZWNhdGVkQ1NTT01WYWx1ZT8gZ2V0UHJvcGVydHlDU1NWYWx1ZShET01TdHJpbmcg
cHJvcGVydHlOYW1lKTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL21ha2Vwcm9wLnBsCShyZXZpc2lvbiAy
Njg1MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwJKHdvcmtpbmcgY29weSkK
QEAgLTEzNTgsMyArMTM1OCwxNzUgQEAgaWYgKG5vdCAkZ3BlcmYpIHsKICAgICAkZ3BlcmYgPSAk
RU5We0dQRVJGfSA/ICRFTlZ7R1BFUkZ9IDogImdwZXJmIjsKIH0KIHN5c3RlbSgiXCIkZ3BlcmZc
IiAtLWtleS1wb3NpdGlvbnM9XCIqXCIgLUQgLW4gLXMgMiBDU1NQcm9wZXJ0eU5hbWVzLmdwZXJm
IC0tb3V0cHV0LWZpbGU9Q1NTUHJvcGVydHlOYW1lcy5jcHAiKSA9PSAwIHx8IGRpZSAiY2FsbGlu
ZyBncGVyZiBmYWlsZWQ6ICQ/IjsKKworCisjIEdlbmVyYXRlIENTU1N0eWxlRGVjbGFyYXRpb24r
UHJvcGVydHlOYW1lcy5pZGwKKworIyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20vI2Nz
cy1wcm9wZXJ0eS10by1pZGwtYXR0cmlidXRlCitzdWIgY3NzUHJvcGVydHlUb0lETEF0dHJpYnV0
ZSgkJCQpCit7CisgICAgbXkgJHByb3BlcnR5ID0gc2hpZnQ7CisgICAgbXkgJGxvd2VyY2FzZUZp
cnN0ID0gc2hpZnQ7CisgICAgbXkgJHVwcGVyY2FzZUZpcnN0ID0gc2hpZnQ7CisKKyAgICBteSAk
b3V0cHV0ID0gIiI7CisgICAgbXkgJHVwcGVyY2FzZU5leHQgPSAkdXBwZXJjYXNlRmlyc3Q7CisK
KyAgICBpZiAoJGxvd2VyY2FzZUZpcnN0KSB7CisgICAgICAgICRwcm9wZXJ0eSA9IHN1YnN0cigk
cHJvcGVydHksIDEpOworICAgIH0KKworICAgIGZvcmVhY2ggbXkgJGNoYXJhY3RlciAoc3BsaXQg
Ly8sICRwcm9wZXJ0eSkgeworICAgICAgICBpZiAoJGNoYXJhY3RlciBlcSAiLSIpIHsKKyAgICAg
ICAgICAgICR1cHBlcmNhc2VOZXh0ID0gMTsKKyAgICAgICAgfSBlbHNpZiAoJHVwcGVyY2FzZU5l
eHQpIHsKKyAgICAgICAgICAgICR1cHBlcmNhc2VOZXh0ID0gMDsKKyAgICAgICAgICAgICRvdXRw
dXQgLj0gdWMgJGNoYXJhY3RlcjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRvdXRw
dXQgLj0gJGNoYXJhY3RlcjsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICByZXR1cm4gJG91
dHB1dDsKK30KKworbXkgJW5hbWVzQW5kQWxpYXNlc1RvTmFtZTsKK2ZvcmVhY2ggbXkgJG5hbWUg
KEBuYW1lcykgeworICAgIGlmIChncmVwIHsgJF8gZXEgJG5hbWUgfSBAaW50ZXJuYWxQcm9wcmVy
dGllcykgeworICAgICAgICBuZXh0OworICAgIH0KKyAgICAkbmFtZXNBbmRBbGlhc2VzVG9OYW1l
eyRuYW1lfSA9ICRuYW1lOworICAgIGZvciBteSAkYWxpYXMgKEB7JG5hbWVUb0FsaWFzZXN7JG5h
bWV9fSkgeworICAgICAgICAkbmFtZXNBbmRBbGlhc2VzVG9OYW1leyRhbGlhc30gPSAkbmFtZTsK
KyAgICB9Cit9CitteSBAbmFtZXNBbmRBbGlhc2VzID0gc29ydCBrZXlzKCVuYW1lc0FuZEFsaWFz
ZXNUb05hbWUpOworCitvcGVuIENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19J
REwsICI+IiwgIkNTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5pZGwiIG9yIGRpZSAi
Q291bGQgbm90IG9wZW4gQ1NTU3R5bGVEZWNsYXJhdGlvbitQcm9wZXJ0eU5hbWVzLmlkbCBmb3Ig
d3JpdGluZ1xuIjsKK3ByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19J
REwgPDwgIkVPRiI7CisvLyBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJv
bSAkaW5wdXRGaWxlIGJ5IHRoZSBtYWtlcHJvcC5wbCBzY3JpcHQuIERvIG5vdCBlZGl0IGl0Lgor
Cit0eXBlZGVmIFVTVlN0cmluZyBDU1NPTVN0cmluZzsKKworcGFydGlhbCBpbnRlcmZhY2UgQ1NT
U3R5bGVEZWNsYXJhdGlvbiB7CitFT0YKKyAKK3ByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9Q
Uk9QRVJUWV9OQU1FU19JREwgPDwgIkVPRiI7CisgICAgLy8gRm9yIGVhY2ggQ1NTIHByb3BlcnR5
IHByb3BlcnR5IHRoYXQgaXMgYSBzdXBwb3J0ZWQgQ1NTIHByb3BlcnR5LCB0aGUgZm9sbG93aW5n
CisgICAgLy8gcGFydGlhbCBpbnRlcmZhY2UgYXBwbGllcyB3aGVyZSBjYW1lbC1jYXNlZCBhdHRy
aWJ1dGUgaXMgb2J0YWluZWQgYnkgcnVubmluZyB0aGUKKyAgICAvLyBDU1MgcHJvcGVydHkgdG8g
SURMIGF0dHJpYnV0ZSBhbGdvcml0aG0gZm9yIHByb3BlcnR5LgorICAgIC8vIEV4YW1wbGU6IGZv
bnQtc2l6ZSAtPiBlbGVtZW50LnN0eWxlLmZvbnRTaXplCisgICAgLy8gRXhhbXBsZTogLXdlYmtp
dC10cmFuc2Zvcm0gLT4gZWxlbWVudC5zdHlsZS5XZWJraXRUcmFuc2Zvcm0KKyAgICAvLyBbQ0VS
ZWFjdGlvbnNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5n
IF9jYW1lbF9jYXNlZF9hdHRyaWJ1dGU7CitFT0YKKworZm9yZWFjaCBteSAkbmFtZU9yQWxpYXMg
KEBuYW1lc0FuZEFsaWFzZXMpIHsKKyAgICBteSAkY2FtZWxDYXNlZEF0dHJpYnV0ZU5hbWUgPSBj
c3NQcm9wZXJ0eVRvSURMQXR0cmlidXRlKCRuYW1lT3JBbGlhcywgMCwgMCk7CisgICAgbXkgJG5h
bWUgPSAkbmFtZXNBbmRBbGlhc2VzVG9OYW1leyRuYW1lT3JBbGlhc307CisgICAgbXkgJHByb3Bl
cnR5SWQgPSAkbmFtZVRvSWR7JG5hbWVzQW5kQWxpYXNlc1RvTmFtZXskbmFtZX19OworICAgIAor
ICAgIG15IEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcyA9ICgiQ1NTUHJvcGVydHk9JHtwcm9wZXJ0
eUlkfSIpOworICAgIHB1c2goQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzLCAiRW5hYmxlZEJ5U2V0
dGluZz0ke3NldHRpbmdzRmxhZ3N7JG5hbWV9fSIpIGlmICRzZXR0aW5nc0ZsYWdzeyRuYW1lfTsK
KyAgICBwdXNoKEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcywgIkVuYWJsZWRBdFJ1bnRpbWU9JHty
dW50aW1lRmxhZ3N7JG5hbWV9fSIpIGlmICRydW50aW1lRmxhZ3N7JG5hbWV9OworICAgIG15ICRl
eHRlbmRlZEF0dHJpYnV0ZXMgPSBqb2luKCIsICIsIEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcyk7
CisKKyAgICBwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMICIg
ICAgW0NFUmVhY3Rpb25zLCAke2V4dGVuZGVkQXR0cmlidXRlc31dIGF0dHJpYnV0ZSBbTGVnYWN5
TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nICR7Y2FtZWxDYXNlZEF0dHJpYnV0ZU5hbWV9
O1xuIjsKK30KKworcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lE
TCA8PCAiRU9GIjsKKworICAgIC8vIEZvciBlYWNoIENTUyBwcm9wZXJ0eSBwcm9wZXJ0eSB0aGF0
IGlzIGEgc3VwcG9ydGVkIENTUyBwcm9wZXJ0eSBhbmQgdGhhdCBiZWdpbnMKKyAgICAvLyB3aXRo
IHRoZSBzdHJpbmcgLXdlYmtpdC0sIHRoZSBmb2xsb3dpbmcgcGFydGlhbCBpbnRlcmZhY2UgYXBw
bGllcyB3aGVyZSB3ZWJraXQtY2FzZWQKKyAgICAvLyBhdHRyaWJ1dGUgaXMgb2J0YWluZWQgYnkg
cnVubmluZyB0aGUgQ1NTIHByb3BlcnR5IHRvIElETCBhdHRyaWJ1dGUgYWxnb3JpdGhtIGZvcgor
ICAgIC8vIHByb3BlcnR5LCB3aXRoIHRoZSBsb3dlcmNhc2UgZmlyc3QgZmxhZyBzZXQuCisgICAg
Ly8gRXhhbXBsZTogLXdlYmtpdC10cmFuc2Zvcm0gLT4gZWxlbWVudC5zdHlsZS53ZWJraXRUcmFu
c2Zvcm0KKyAgICAvLyBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlT
dHJpbmddIENTU09NU3RyaW5nIF93ZWJraXRfY2FzZWRfYXR0cmlidXRlOworRU9GCisKK2ZvcmVh
Y2ggbXkgJG5hbWVPckFsaWFzIChncmVwIHsgJF8gPX4gL15cLXdlYmtpdFwtLyB9IEBuYW1lc0Fu
ZEFsaWFzZXMpIHsKKyAgICBteSAkd2Via2l0Q2FzZWRBdHRyaWJ1dGVOYW1lID0gY3NzUHJvcGVy
dHlUb0lETEF0dHJpYnV0ZSgkbmFtZU9yQWxpYXMsIDEsIDApOworICAgIG15ICRuYW1lID0gJG5h
bWVzQW5kQWxpYXNlc1RvTmFtZXskbmFtZU9yQWxpYXN9OworICAgIG15ICRwcm9wZXJ0eUlkID0g
JG5hbWVUb0lkeyRuYW1lc0FuZEFsaWFzZXNUb05hbWV7JG5hbWV9fTsKKyAgICAKKyAgICBteSBA
ZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMgPSAoIkNTU1Byb3BlcnR5PSR7cHJvcGVydHlJZH0iKTsK
KyAgICBwdXNoKEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcywgIkVuYWJsZWRCeVNldHRpbmc9JHtz
ZXR0aW5nc0ZsYWdzeyRuYW1lfX0iKSBpZiAkc2V0dGluZ3NGbGFnc3skbmFtZX07CisgICAgcHVz
aChAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMsICJFbmFibGVkQXRSdW50aW1lPSR7cnVudGltZUZs
YWdzeyRuYW1lfX0iKSBpZiAkcnVudGltZUZsYWdzeyRuYW1lfTsKKyAgICBteSAkZXh0ZW5kZWRB
dHRyaWJ1dGVzID0gam9pbigiLCAiLCBAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMpOworCisgICAg
cHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCAiICAgIFtDRVJl
YWN0aW9ucywgJHtleHRlbmRlZEF0dHJpYnV0ZXN9XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyAke3dlYmtpdENhc2VkQXR0cmlidXRlTmFtZX07XG4iOwor
fQorCitwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMIDw8ICJF
T0YiOworCisgICAgLy8gRm9yIGVhY2ggQ1NTIHByb3BlcnR5IHByb3BlcnR5IHRoYXQgaXMgYSBz
dXBwb3J0ZWQgQ1NTIHByb3BlcnR5LCBleGNlcHQgZm9yCisgICAgLy8gcHJvcGVydGllcyB0aGF0
IGhhdmUgbm8gIi0iIChVKzAwMkQpIGluIHRoZSBwcm9wZXJ0eSBuYW1lLCB0aGUgZm9sbG93aW5n
IHBhcnRpYWwKKyAgICAvLyBpbnRlcmZhY2UgYXBwbGllcyB3aGVyZSBkYXNoZWQgYXR0cmlidXRl
IGlzIHByb3BlcnR5LgorICAgIC8vIEV4YW1wbGU6IGZvbnQtc2l6ZSAtPiBlbGVtZW50LnN0eWxl
Wydmb250LXNpemUnXQorICAgIC8vIEV4YW1wbGU6IC13ZWJraXQtdHJhbnNmb3JtIC0+IGVsZW1l
bnQuc3R5bGUuWyctd2Via2l0LXRyYW5zZm9ybSddCisgICAgLy8gW0NFUmVhY3Rpb25zXSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBfZGFzaGVkX2F0dHJp
YnV0ZTsKK0VPRgorZm9yZWFjaCBteSAkbmFtZU9yQWxpYXMgKGdyZXAgeyAkXyA9fiAvXC0vIH0g
QG5hbWVzQW5kQWxpYXNlcykgeworICAgIG15ICRkYXNoZWRBdHRyaWJ1dGVOYW1lID0gJG5hbWVP
ckFsaWFzOworICAgIG15ICRuYW1lID0gJG5hbWVzQW5kQWxpYXNlc1RvTmFtZXskbmFtZU9yQWxp
YXN9OworICAgIG15ICRwcm9wZXJ0eUlkID0gJG5hbWVUb0lkeyRuYW1lc0FuZEFsaWFzZXNUb05h
bWV7JG5hbWV9fTsKKyAgICAKKyAgICBteSBAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMgPSAoIkNT
U1Byb3BlcnR5PSR7cHJvcGVydHlJZH0iKTsKKyAgICBwdXNoKEBleHRlbmRlZEF0dHJpYnV0ZVZh
bHVlcywgIkVuYWJsZWRCeVNldHRpbmc9JHtzZXR0aW5nc0ZsYWdzeyRuYW1lfX0iKSBpZiAkc2V0
dGluZ3NGbGFnc3skbmFtZX07CisgICAgcHVzaChAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMsICJF
bmFibGVkQXRSdW50aW1lPSR7cnVudGltZUZsYWdzeyRuYW1lfX0iKSBpZiAkcnVudGltZUZsYWdz
eyRuYW1lfTsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVzID0gam9pbigiLCAiLCBAZXh0ZW5k
ZWRBdHRyaWJ1dGVWYWx1ZXMpOworCisgICAgcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BS
T1BFUlRZX05BTUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgJHtleHRlbmRlZEF0dHJpYnV0ZXN9
XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAke2Rhc2hl
ZEF0dHJpYnV0ZU5hbWV9O1xuIjsKK30KKworIyBFdmVyeXRoaW5nIGJlbG93IGhlcmUgaXMgbm9u
LXN0YW5kYXJkLgorCitwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNf
SURMIDw8ICJFT0YiOworCisgICAgLy8gTm9uLXN0YW5kYXJkLiBTcGVjaWFsIGNhc2UgcHJvcGVy
dGllcyBzdGFydGluZyB3aXRoIC1lcHViLSBsaWtlIGlzIGRvbmUgZm9yCisgICAgLy8gLXdlYmtp
dC0sIHdoZXJlIGF0dHJpYnV0ZSBpcyBvYnRhaW5lZCBieSBydW5uaW5nIHRoZSBDU1MgcHJvcGVy
dHkgdG8gSURMIGF0dHJpYnV0ZQorICAgIC8vIGFsZ29yaXRobSBmb3IgcHJvcGVydHksIHdpdGgg
dGhlIGxvd2VyY2FzZSBmaXJzdCBmbGFnIHNldC4KKyAgICAvLyBFeGFtcGxlOiAtZXB1Yi1jYXB0
aW9uLXNpZGUgLT4gZWxlbWVudC5zdHlsZS5lcHViQ2FwdGlvblNpZGUKK0VPRgorZm9yZWFjaCBt
eSAkbmFtZU9yQWxpYXMgKGdyZXAgeyAkXyA9fiAvXlwtZXB1YlwtLyB9IEBuYW1lc0FuZEFsaWFz
ZXMpIHsKKyAgICBteSAkZXB1YkNhc2VkQXR0cmlidXRlTmFtZSA9IGNzc1Byb3BlcnR5VG9JRExB
dHRyaWJ1dGUoJG5hbWVPckFsaWFzLCAxLCAwKTsKKyAgICBteSAkbmFtZSA9ICRuYW1lc0FuZEFs
aWFzZXNUb05hbWV7JG5hbWVPckFsaWFzfTsKKyAgICBteSAkcHJvcGVydHlJZCA9ICRuYW1lVG9J
ZHskbmFtZXNBbmRBbGlhc2VzVG9OYW1leyRuYW1lfX07CisgICAgCisgICAgbXkgQGV4dGVuZGVk
QXR0cmlidXRlVmFsdWVzID0gKCJDU1NQcm9wZXJ0eT0ke3Byb3BlcnR5SWR9Iik7CisgICAgcHVz
aChAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMsICJFbmFibGVkQnlTZXR0aW5nPSR7c2V0dGluZ3NG
bGFnc3skbmFtZX19IikgaWYgJHNldHRpbmdzRmxhZ3N7JG5hbWV9OworICAgIHB1c2goQGV4dGVu
ZGVkQXR0cmlidXRlVmFsdWVzLCAiRW5hYmxlZEF0UnVudGltZT0ke3J1bnRpbWVGbGFnc3skbmFt
ZX19IikgaWYgJHJ1bnRpbWVGbGFnc3skbmFtZX07CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRl
cyA9IGpvaW4oIiwgIiwgQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzKTsKKworICAgIHByaW50IENT
U19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMs
ICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgJHtlcHViQ2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiI7Cit9CisKK3ByaW50
IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgPDwgIkVPRiI7CisKKyAg
ICAvLyBOb24tc3RhbmRhcmQuIEFkZCBzcGVjaWFsIGNhc2VzIGZvciBhbGwgcHJvcGVydGllcyBu
b3Qgc3RhcnRpbmcgd2l0aCAtd2Via2l0LSBvciAtZXB1Yi0KKyAgICAvLyB0aGF0IHB1dHMgYW4g
bmV3IHByZWZpeCBvZiBjc3MsIENzcywgcG9zLCBQb3MsIHBpeGVsIGFuZCBQaXhlbCBvbiBlYWNo
LgorICAgIC8vIEV4YW1wbGUgdG9wIC0+IGVsZW1lbnQuc3R5bGUucG9zVG9wCisgICAgLy8gRXhh
bXBsZSB0b3AgLT4gZWxlbWVudC5zdHlsZS5QaXhlbFRvcAorRU9GCitmb3JlYWNoIG15ICRuYW1l
T3JBbGlhcyAoZ3JlcCB7ICRfICF+IC9eXC13ZWJraXRcLXxeXC1lcHViXC0vIH0gQG5hbWVzQW5k
QWxpYXNlcykgeworICAgIG15ICRjYW1lbENhc2VkQXR0cmlidXRlTmFtZSA9IGNzc1Byb3BlcnR5
VG9JRExBdHRyaWJ1dGUoJG5hbWVPckFsaWFzLCAwLCAxKTsKKyAgICBteSAkbmFtZSA9ICRuYW1l
c0FuZEFsaWFzZXNUb05hbWV7JG5hbWVPckFsaWFzfTsKKyAgICBteSAkcHJvcGVydHlJZCA9ICRu
YW1lVG9JZHskbmFtZXNBbmRBbGlhc2VzVG9OYW1leyRuYW1lfX07CisgICAgCisgICAgbXkgQGV4
dGVuZGVkQXR0cmlidXRlVmFsdWVzID0gKCJDU1NQcm9wZXJ0eT0ke3Byb3BlcnR5SWR9Iik7Cisg
ICAgcHVzaChAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMsICJFbmFibGVkQnlTZXR0aW5nPSR7c2V0
dGluZ3NGbGFnc3skbmFtZX19IikgaWYgJHNldHRpbmdzRmxhZ3N7JG5hbWV9OworICAgIHB1c2go
QGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzLCAiRW5hYmxlZEF0UnVudGltZT0ke3J1bnRpbWVGbGFn
c3skbmFtZX19IikgaWYgJHJ1bnRpbWVGbGFnc3skbmFtZX07CisgICAgbXkgJGV4dGVuZGVkQXR0
cmlidXRlcyA9IGpvaW4oIiwgIiwgQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzKTsKKworICAgIHBy
aW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFj
dGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gQ1NTT01TdHJpbmcgY3NzJHtjYW1lbENhc2VkQXR0cmlidXRlTmFtZX07XG4iIHVu
bGVzcyAkY2FtZWxDYXNlZEF0dHJpYnV0ZU5hbWUgZXEgIkZsb2F0IjsKKyAgICBwcmludCBDU1Nf
U1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVhY3Rpb25zLCAk
e2V4dGVuZGVkQXR0cmlidXRlc31dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIENzcyR7Y2FtZWxDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIiB1bmxlc3MgJGNh
bWVsQ2FzZWRBdHRyaWJ1dGVOYW1lIGVxICJGbG9hdCI7CisgICAgcHJpbnQgQ1NTX1NUWUxFX0RF
Q0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgJHtleHRlbmRl
ZEF0dHJpYnV0ZXN9XSBhdHRyaWJ1dGUgKGRvdWJsZSBvciBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nKSBwb3Mke2NhbWVsQ2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiI7CisgICAg
cHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCAiICAgIFtDRVJl
YWN0aW9ucywgJHtleHRlbmRlZEF0dHJpYnV0ZXN9XSBhdHRyaWJ1dGUgKGRvdWJsZSBvciBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nKSBQb3Mke2NhbWVsQ2FzZWRBdHRyaWJ1
dGVOYW1lfTtcbiI7CisgICAgcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05B
TUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgJHtleHRlbmRlZEF0dHJpYnV0ZXN9XSBhdHRyaWJ1
dGUgKGRvdWJsZSBvciBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nKSBwaXhl
bCR7Y2FtZWxDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIjsKKyAgICBwcmludCBDU1NfU1RZTEVfREVD
TEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVhY3Rpb25zLCAke2V4dGVuZGVk
QXR0cmlidXRlc31dIGF0dHJpYnV0ZSAoZG91YmxlIG9yIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcpIFBpeGVsJHtjYW1lbENhc2VkQXR0cmlidXRlTmFtZX07XG4iOworfQor
CitwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMIDw8ICJFT0Yi
OworfTsKK0VPRgorCitjbG9zZSBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNf
SURMOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtZW51bWVyYXRlLXByb3BlcnRp
ZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1lbnVtZXJh
dGUtcHJvcGVydGllcy5odG1sCShyZXZpc2lvbiAyNjg0OTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2Nzcy9zdHlsZS1lbnVtZXJhdGUtcHJvcGVydGllcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0y
MywzMyArMjMsNiBAQAogICAgICAgICBzaG91bGRCZUZhbHNlKCInYm9ndXMtcmFuZG9tLVN0cmlu
ZycgaW4gZG9jdW1lbnQuYm9keS5zdHlsZSIpOwogICAgICAgICBzaG91bGRCZVRydWUoIidjc3NU
ZXh0JyBpbiBkb2N1bWVudC5ib2R5LnN0eWxlIik7CiAgICAgICAgIHNob3VsZEJlVHJ1ZSgiJ2dl
dFByb3BlcnR5Q1NTVmFsdWUnIGluIGRvY3VtZW50LmJvZHkuc3R5bGUiKTsKLQotICAgICAgICAv
LyBUZXN0IENTUyBwcm9wZXJ0eSBvcmRlci4KLSAgICAgICAgdmFyIHN0YXJ0ZWQ7Ci0gICAgICAg
IHZhciBjc3NQcm9wZXJ0eUNvdW50ID0gMDsKLSAgICAgICAgdmFyIHByZXZpb3VzOwotICAgICAg
ICB2YXIgc2VlbkZpbHRlcjsKLSAgICAgICAgZm9yICh2YXIgcCBpbiBkb2N1bWVudC5ib2R5LnN0
eWxlKSB7Ci0gICAgICAgICAgICBpZiAocCA9PT0gImFsaWdubWVudEJhc2VsaW5lIikKLSAgICAg
ICAgICAgICAgICBzdGFydGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIGlmICghc3RhcnRlZCkKLSAg
ICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmIChwID09PSAiZmlsdGVyIikK
LSAgICAgICAgICAgICAgICBzZWVuRmlsdGVyID0gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChwcmV2
aW91cyAmJiBwcmV2aW91cyA+PSBwKSB7Ci0gICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSW52
YWxpZCBDU1MtbWFwcGVkIHByb3BlcnR5IG9yZGVyOiAnIiArIHAgKyAiJyBhZnRlciAnIiArIHBy
ZXZpb3VzICsgIiciKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGlmICgrK2Nzc1Byb3BlcnR5Q291bnQgPD0gNDAwKQotICAgICAgICAgICAgICAg
IHByZXZpb3VzID0gcDsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGlmIChz
ZWVuRmlsdGVyKQotICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJUaGUgQ1NTIHByb3Bl
cnR5IG9yZGVyIGlzIGNvcnJlY3QiKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIlRoZSAnZmlsdGVyJyBwcm9wZXJ0eSB3YXMgbm90IGVudW1l
cmF0ZWQiKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQogICAgIDwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L0NTU1N0eWxlRGVjbGFyYXRpb24vY3Nzc3R5bGVkZWNsYXJhdGlvbi1wcm9wZXJ0aWVzLWRlc2Ny
aXB0b3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURl
Y2xhcmF0aW9uL2Nzc3N0eWxlZGVjbGFyYXRpb24tcHJvcGVydGllcy1kZXNjcmlwdG9yLmh0bWwJ
KHJldmlzaW9uIDI2ODQ5NCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFy
YXRpb24vY3Nzc3R5bGVkZWNsYXJhdGlvbi1wcm9wZXJ0aWVzLWRlc2NyaXB0b3IuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtNSw4ICs1LDkgQEAKICAgICA8c2NyaXB0PgogICAgICAgICBkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0cyB0aGUgZGVzY3JpcHRvciBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIHBy
b3BlcnRpZXMuIik7CiAKLSAgICAgICAgdmFyIGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmJvZHkuc3R5bGUsICdjb2xvcicpOwotICAgICAgICBz
aG91bGRCZVRydWUoImRlc2NyaXB0b3JbJ3dyaXRhYmxlJ10iKTsKKyAgICAgICAgdmFyIGRlc2Ny
aXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmJvZHkuc3R5
bGUuX19wcm90b19fLCAnY29sb3InKTsKKyAgICAgICAgc2hvdWxkQmVUeXBlKCJkZXNjcmlwdG9y
WydnZXQnXSIsICJGdW5jdGlvbiIpOworICAgICAgICBzaG91bGRCZVR5cGUoImRlc2NyaXB0b3Jb
J3NldCddIiwgIkZ1bmN0aW9uIik7CiAgICAgICAgIHNob3VsZEJlVHJ1ZSgiZGVzY3JpcHRvclsn
ZW51bWVyYWJsZSddIik7CiAgICAgICAgIHNob3VsZEJlVHJ1ZSgiZGVzY3JpcHRvclsnY29uZmln
dXJhYmxlJ10iKTsKICAgICA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9wdXQt
b3ZlcnJpZGUtc2hvdWxkLW5vdC11c2UtaWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9qcy9kb20vcHV0LW92ZXJyaWRlLXNob3VsZC1ub3QtdXNlLWljLmh0bWwJKHJldmlzaW9uIDI2
ODQ5NCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9wdXQtb3ZlcnJpZGUtc2hvdWxkLW5vdC11c2Ut
aWMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCwxMCArOCwxMCBAQAogPHNjcmlwdD4KICAgICB0
ZXN0KGZ1bmN0aW9uKCkgewogICAgICAgICBmdW5jdGlvbiB0cmFuc2l0aW9uZWQoKSB7Ci0gICAg
ICAgICAgICBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKS5zdHlsZTsKKyAgICAg
ICAgICAgIGRhdGFzZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJykuZGF0YXNldDsKICAg
ICAgICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCAyMDsgaSsrKQotICAgICAgICAgICAgICAgIHN0
eWxlWydwJytpXSA9IGk7Ci0gICAgICAgICAgICByZXR1cm4gc3R5bGU7CisgICAgICAgICAgICAg
ICAgZGF0YXNldFsncCcraV0gPSBpOworICAgICAgICAgICAgcmV0dXJuIGRhdGFzZXQ7CiAgICAg
ICAgIH0KIAogICAgICAgICBmdW5jdGlvbiBwdXR0ZXIobykgewpJbmRleDogTGF5b3V0VGVzdHMv
dHJhbnNpdGlvbnMvdHJhbnNpdGlvbnMtcGFyc2luZy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb25zLXBhcnNpbmcuaHRtbAkocmV2aXNpb24gMjY4
NDk0KQorKysgTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbnMtcGFyc2luZy5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0zMCw4ICszMCw2IEBAIHNob3VsZEJlKCJjb21wdXRlZFN0eWxl
LnRyYW5zaXRpb25Qcm9wZXIKIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLndlYmtpdFRyYW5zaXRp
b25Qcm9wZXJ0eSIsICInYWxsJyIpOwogCiBzdHlsZS50cmFuc2l0aW9uUHJvcGVydHkgPSAibm9u
ZSI7Ci1zaG91bGROb3RCZSgiT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3RyYW5zaXRpb25Q
cm9wZXJ0eScpIiwgIi0xIik7Ci1zaG91bGRCZSgiT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2Yo
J3dlYmtpdFRyYW5zaXRpb25Qcm9wZXJ0eScpIiwgIi0xIik7CiBzaG91bGRCZSgic3R5bGUudHJh
bnNpdGlvblByb3BlcnR5IiwgIidub25lJyIpOwogc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJh
bnNpdGlvblByb3BlcnR5IiwgIidub25lJyIpOwogc2hvdWxkQmUoInN0eWxlLndlYmtpdFRyYW5z
aXRpb25Qcm9wZXJ0eSIsICInbm9uZSciKTsKQEAgLTE3Niw4ICsxNzQsNiBAQCBzaG91bGRCZSgi
Y29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uRHVyYXRpCiBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS53
ZWJraXRUcmFuc2l0aW9uRHVyYXRpb24iLCAiJzBzJyIpOwogCiBzdHlsZS50cmFuc2l0aW9uRHVy
YXRpb24gPSAiMHMiOwotc2hvdWxkTm90QmUoIk9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd0
cmFuc2l0aW9uRHVyYXRpb24nKSIsICItMSIpOwotc2hvdWxkQmUoIk9iamVjdC5rZXlzKHN0eWxl
KS5pbmRleE9mKCd3ZWJraXRUcmFuc2l0aW9uRHVyYXRpb24nKSIsICItMSIpOwogc2hvdWxkQmUo
InN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiIsICInMHMnIik7CiBzaG91bGRCZSgiY29tcHV0ZWRT
dHlsZS50cmFuc2l0aW9uRHVyYXRpb24iLCAiJzBzJyIpOwogc2hvdWxkQmUoInN0eWxlLndlYmtp
dFRyYW5zaXRpb25EdXJhdGlvbiIsICInMHMnIik7CkBAIC0yNTYsOCArMjUyLDYgQEAgc2hvdWxk
QmUoImNvbXB1dGVkU3R5bGUudHJhbnNpdGlvblRpbWluZwogc2hvdWxkQmUoImNvbXB1dGVkU3R5
bGUud2Via2l0VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIiwgIidlYXNlJyIpOwogCiBzdHlsZS50
cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24gPSAibGluZWFyIjsKLXNob3VsZE5vdEJlKCJPYmplY3Qu
a2V5cyhzdHlsZSkuaW5kZXhPZigndHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uJykiLCAiLTEiKTsK
LXNob3VsZEJlKCJPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZignd2Via2l0VHJhbnNpdGlvblRp
bWluZ0Z1bmN0aW9uJykiLCAiLTEiKTsKIHNob3VsZEJlKCJzdHlsZS50cmFuc2l0aW9uVGltaW5n
RnVuY3Rpb24iLCAiJ2xpbmVhciciKTsKIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLnRyYW5zaXRp
b25UaW1pbmdGdW5jdGlvbiIsICInbGluZWFyJyIpOwogc2hvdWxkQmUoInN0eWxlLndlYmtpdFRy
YW5zaXRpb25UaW1pbmdGdW5jdGlvbiIsICInbGluZWFyJyIpOwpAQCAtNDg1LDggKzQ3OSw2IEBA
IHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25EZWxheSIKIHNob3VsZEJlKCJjb21w
dXRlZFN0eWxlLndlYmtpdFRyYW5zaXRpb25EZWxheSIsICInMHMnIik7CiAKIHN0eWxlLnRyYW5z
aXRpb25EZWxheSA9ICIwcyI7Ci1zaG91bGROb3RCZSgiT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4
T2YoJ3RyYW5zaXRpb25EZWxheScpIiwgIi0xIik7Ci1zaG91bGRCZSgiT2JqZWN0LmtleXMoc3R5
bGUpLmluZGV4T2YoJ3dlYmtpdFRyYW5zaXRpb25EZWxheScpIiwgIi0xIik7CiBzaG91bGRCZSgi
c3R5bGUudHJhbnNpdGlvbkRlbGF5IiwgIicwcyciKTsKIHNob3VsZEJlKCJjb21wdXRlZFN0eWxl
LnRyYW5zaXRpb25EZWxheSIsICInMHMnIik7CiBzaG91bGRCZSgic3R5bGUud2Via2l0VHJhbnNp
dGlvbkRlbGF5IiwgIicwcyciKTsKQEAgLTU2NSw4ICs1NTcsNiBAQCBzaG91bGRCZSgiY29tcHV0
ZWRTdHlsZS50cmFuc2l0aW9uIiwgIidhCiBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS53ZWJraXRU
cmFuc2l0aW9uIiwgIidhbGwgMHMgZWFzZSAwcyciKTsKIAogc3R5bGUudHJhbnNpdGlvbiA9ICJu
b25lIjsKLXNob3VsZE5vdEJlKCJPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZigndHJhbnNpdGlv
bicpIiwgIi0xIik7Ci1zaG91bGRCZSgiT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3dlYmtp
dFRyYW5zaXRpb24nKSIsICItMSIpOwogc2hvdWxkQmUoInN0eWxlLnRyYW5zaXRpb24iLCAiJ25v
bmUnIik7CiBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uIiwgIidub25lIDBzIGVh
c2UgMHMnIik7CiBzaG91bGRCZSgic3R5bGUud2Via2l0VHJhbnNpdGlvbiIsICInbm9uZSciKTsK
</data>
<flag name="commit-queue"
          id="427645"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411453</attachid>
            <date>2020-10-15 10:10:05 -0700</date>
            <delta_ts>2020-10-15 10:24:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217623-20201015101005.patch</filename>
            <type>text/plain</type>
            <size>42848</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2ODUwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDIwLTEwLTEzICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIGJy
ZWFrcyBKUyBzcGVjIChwcm9wZXJ0aWVzIG5vdCBzaG93aW5nIHVwIGluIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eU5hbWVzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE3NjIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW1dJUF0KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG06CisgICAgICAgIChHZW5lcmF0ZUF0dHJpYnV0ZUdldHRlckJvZHlEZWZpbml0aW9uKToK
KyAgICAgICAgKEdlbmVyYXRlQXR0cmlidXRlU2V0dGVyQm9keURlZmluaXRpb24pOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uOgorICAgICAgICAqIGNzcy9D
U1NTdHlsZURlY2xhcmF0aW9uLmlkbDoKKyAgICAgICAgKiBjc3MvbWFrZXByb3AucGw6CisgICAg
ICAgIChjc3NQcm9wZXJ0eVRvSURMQXR0cmlidXRlKToKKwogMjAyMC0xMC0xNCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFZlY3Rvcml6ZSBkb3dubWl4aW5nIGlu
IEF1ZGlvQnVzOjpjcmVhdGVCeU1peGluZ1RvTW9ubygpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAkocmV2aXNpb24gMjY4NTA1KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTE4NzksNyArMTg3OSw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09V
UkNFUyAke1dlYkNvcmVfREUKIAogIyBHZW5lcmF0ZSBDU1MgcHJvcGVydHkgbmFtZXMKIGFkZF9j
dXN0b21fY29tbWFuZCgKLSAgICBPVVRQVVQgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9
L0NTU1Byb3BlcnRpZXMuanNvbiAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJv
cGVydHlOYW1lcy5oICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5h
bWVzLmNwcCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5n
cGVyZiAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVCdWlsZGVyR2VuZXJhdGVk
LmNwcCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVQcm9wZXJ0eVNob3J0aGFu
ZEZ1bmN0aW9ucy5oICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZVByb3BlcnR5
U2hvcnRoYW5kRnVuY3Rpb25zLmNwcAorICAgIE9VVFBVVCAke1dlYkNvcmVfREVSSVZFRF9TT1VS
Q0VTX0RJUn0vQ1NTUHJvcGVydGllcy5qc29uICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElS
fS9DU1NQcm9wZXJ0eU5hbWVzLmggJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1By
b3BlcnR5TmFtZXMuY3BwICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0
eU5hbWVzLmdwZXJmICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZUJ1aWxkZXJH
ZW5lcmF0ZWQuY3BwICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZVByb3BlcnR5
U2hvcnRoYW5kRnVuY3Rpb25zLmggJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0eWxl
UHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNf
RElSfS9DU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsCiAgICAgTUFJTl9ERVBF
TkRFTkNZICR7V0VCQ09SRV9ESVJ9L2Nzcy9tYWtlcHJvcC5wbAogICAgIERFUEVORFMgJHtXZWJD
b3JlX0NTU19QUk9QRVJUWV9OQU1FU30KICAgICBXT1JLSU5HX0RJUkVDVE9SWSAke1dlYkNvcmVf
REVSSVZFRF9TT1VSQ0VTX0RJUn0KQEAgLTE4ODksNiArMTg4OSw3IEBAIGFkZF9jdXN0b21fY29t
bWFuZCgKIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke1dlYkNvcmVfREVSSVZFRF9TT1VS
Q0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5jcHApCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJD
RVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0eWxlQnVpbGRlckdlbmVyYXRlZC5j
cHApCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNF
U19ESVJ9L1N0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwKQorbGlzdChBUFBFTkQg
V2ViQ29yZV9JRExfRklMRVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1N0eWxl
RGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5pZGwpCiBBRERfU09VUkNFX1dFQkNPUkVfREVSSVZF
RF9ERVBFTkRFTkNJRVMoJHtXRUJDT1JFX0RJUn0vY3NzL0NTU1BhcnNlci5jcHAgQ1NTVmFsdWVL
ZXl3b3Jkcy5oKQogCiAjIEdlbmVyYXRlIENTUyB2YWx1ZSBrZXl3b3JkcwpJbmRleDogU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHJldmlzaW9u
IDI2ODUwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDYgKzMsNyBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9CeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5QnVpbHRpbnMuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTUHJvcGVydHlOYW1lcy5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1Byb3BlcnR5TmFt
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTU3R5
bGVEZWNsYXJhdGlvbitQcm9wZXJ0eU5hbWVzLmlkbAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTVmFsdWVLZXl3b3Jkcy5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1ZhbHVlS2V5d29yZHMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ29sb3JEYXRhLmNwcApAQCAt
MjkwLDYgKzI5MSw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWIK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTUnVsZS5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU1J1bGVM
aXN0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlND
U1NSdWxlTGlzdC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0NTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5jcHAKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbitQcm9w
ZXJ0eU5hbWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbi5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU1N0eWxlUnVsZS5jcHAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjY4NTA1KQorKysgU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTMyNyw2ICsxMzI3
LDcgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkveG1sL1hQYXRoUmVzdWx0
LmlkbCBcCiAgICAgJChXZWJDb3JlKS94bWwvWFNMVFByb2Nlc3Nvci5pZGwgXAogICAgIEludGVy
bmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRsIFwKKyAgICBDU1NTdHlsZURlY2xhcmF0aW9uK1Byb3Bl
cnR5TmFtZXMuaWRsIFwKICMKIAogIyAtLS0tLS0tLQpAQCAtMTQxOCw2ICsxNDE5LDcgQEAgYWxs
IDogXAogICAgIFN0eWxlQnVpbGRlckdlbmVyYXRlZC5jcHAgXAogICAgIFN0eWxlUHJvcGVydHlT
aG9ydGhhbmRGdW5jdGlvbnMuY3BwIFwKICAgICBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rp
b25zLmggXAorICAgIENTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5pZGwgXAogICAg
IFVzZXJBZ2VudFN0eWxlU2hlZXRzLmggXAogICAgIFdlYktpdEZvbnRGYW1pbHlOYW1lcy5jcHAg
XAogICAgIFdlYktpdEZvbnRGYW1pbHlOYW1lcy5oIFwKQEAgLTE0NDUsNiArMTQ0Nyw3IEBAIENT
U19QUk9QRVJUWV9OQU1FX0ZJTEVTID0gXAogICAgIFN0eWxlQnVpbGRlckdlbmVyYXRlZC5jcHAg
XAogICAgIFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwIFwKICAgICBTdHlsZVBy
b3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmggXAorICAgIENTU1N0eWxlRGVjbGFyYXRpb24rUHJv
cGVydHlOYW1lcy5pZGwgXAogIwogQ1NTX1BST1BFUlRZX05BTUVfRklMRVNfUEFUVEVSTlMgPSAk
KHN1YnN0IC4sJSwkKENTU19QUk9QRVJUWV9OQU1FX0ZJTEVTKSkKIApJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlz
aW9uIDI2ODUwNSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xMTg3LDE1ICsxMTg3LDEyIEBAIHN1YiBHZW5l
cmF0ZUludm9rZU5hbWVkUHJvcGVydHlTZXR0ZXIKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRp
bmRlbnQgLiAiYXV0byBuYXRpdmVWYWx1ZSA9ICR7bmF0aXZlVmFsdWV9O1xuIik7CiAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gIlJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29w
ZSwgdHJ1ZSk7XG4iKTsKIAotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJib29s
IGlzUHJvcGVydHlTdXBwb3J0ZWQgPSB0cnVlO1xuIikgaWYgJG5hbWVkU2V0dGVyT3BlcmF0aW9u
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDYWxsTmFtZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVkUHJv
cGVydGllc307Ci0KICAgICBteSAkbmFtZWRTZXR0ZXJGdW5jdGlvbk5hbWUgPSAkbmFtZWRTZXR0
ZXJPcGVyYXRpb24tPm5hbWUgfHwgInNldE5hbWVkSXRlbSI7CiAgICAgbXkgJG5hdGl2ZVZhbHVl
UGFzc0V4cHJlc3Npb24gPSBQYXNzQXJndW1lbnRFeHByZXNzaW9uKCJuYXRpdmVWYWx1ZSIsICRh
cmd1bWVudCk7CiAKICAgICBteSBAYXJndW1lbnRzID0gKCk7CiAgICAgcHVzaChAYXJndW1lbnRz
LCAicHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSIpOwogICAgIHB1c2goQGFyZ3Vt
ZW50cywgJG5hdGl2ZVZhbHVlUGFzc0V4cHJlc3Npb24pOwotICAgIHB1c2goQGFyZ3VtZW50cywg
ImlzUHJvcGVydHlTdXBwb3J0ZWQiKSBpZiAkbmFtZWRTZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0NhbGxOYW1lZFNldHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9wZXJ0aWVzfTsK
IAogICAgIG15ICRmdW5jdGlvblN0cmluZyA9ICJ0aGlzT2JqZWN0LT53cmFwcGVkKCkuJHtuYW1l
ZFNldHRlckZ1bmN0aW9uTmFtZX0oIiAuIGpvaW4oIiwgIiwgQGFyZ3VtZW50cykgLiAiKSI7CiAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gImludm9rZUZ1bmN0b3JQcm9wYWdhdGlu
Z0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBb
Jl0geyByZXR1cm4gJHtmdW5jdGlvblN0cmluZ307IH0pO1xuIik7CkBAIC0xMjUwLDEwICsxMjQ3
LDYgQEAgc3ViIEdlbmVyYXRlUHV0CiAgICAgICAgIH0KIAogICAgICAgICBHZW5lcmF0ZUludm9r
ZU5hbWVkUHJvcGVydHlTZXR0ZXIoJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIg
ICAgICAgICIsICRpbnRlcmZhY2UsICRuYW1lZFNldHRlck9wZXJhdGlvbiwgInZhbHVlIik7Ci0g
ICAgICAgIGlmICgkbmFtZWRTZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e0Nh
bGxOYW1lZFNldHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9wZXJ0aWVzfSkgewotICAgICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgICAgIGlmICghaXNQ
cm9wZXJ0eVN1cHBvcnRlZClcbiIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAk
YWRkaXRpb25hbEluZGVudCAuICIgICAgICAgICAgICByZXR1cm4gSlNPYmplY3Q6OnB1dCh0aGlz
T2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9w
ZXJ0eVNsb3QpO1xuIik7Ci0gICAgICAgIH0KICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAk
YWRkaXRpb25hbEluZGVudCAuICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAKICAgICAgICAg
aWYgKCEkbGVnYWN5T3ZlcnJpZGVCdWlsdGlucykgewpAQCAtMTI4Niw3ICsxMjc5LDcgQEAgc3Vi
IEdlbmVyYXRlUHV0QnlJbmRleAogICAgIG15ICRpbmRleGVkU2V0dGVyT3BlcmF0aW9uID0gR2V0
SW5kZXhlZFNldHRlck9wZXJhdGlvbigkaW50ZXJmYWNlKTsKICAgICAKICAgICBteSAkbGVnYWN5
T3ZlcnJpZGVCdWlsdGlucyA9ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0V4dGVuZGVkQXR0cmli
dXRlKCRpbnRlcmZhY2UsICJMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIik7Ci0gICAgbXkgJGVsbGlk
ZXNDYWxsc1RvQmFzZSA9ICgkbmFtZWRTZXR0ZXJPcGVyYXRpb24gJiYgJGxlZ2FjeU92ZXJyaWRl
QnVpbHRpbnMpICYmICEkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntQbHVnaW59ICYm
ICEkbmFtZWRTZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NhbGxOYW1lZFNl
dHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9wZXJ0aWVzfTsKKyAgICBteSAkZWxsaWRlc0NhbGxzVG9C
YXNlID0gKCRuYW1lZFNldHRlck9wZXJhdGlvbiAmJiAkbGVnYWN5T3ZlcnJpZGVCdWlsdGlucykg
JiYgISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e1BsdWdpbn07CiAgICAgCiAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiYm9vbCAke2NsYXNzTmFtZX06OnB1dEJ5SW5kZXgoSlNDZWxs
KiBjZWxsLCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgdW5zaWduZWQgaW5k
ZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wiIC4gKCEkZWxsaWRlc0NhbGxzVG9CYXNlID8gIiBzaG91
bGRUaHJvdyIgOiAiIikgLiAiKVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7
CkBAIC0xMzI4LDEwICsxMzIxLDYgQEAgc3ViIEdlbmVyYXRlUHV0QnlJbmRleAogICAgICAgICB9
CiAgICAgICAgIAogICAgICAgICBHZW5lcmF0ZUludm9rZU5hbWVkUHJvcGVydHlTZXR0ZXIoJG91
dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgIiwgJGludGVyZmFjZSwgJG5hbWVk
U2V0dGVyT3BlcmF0aW9uLCAidmFsdWUiKTsKLSAgICAgICAgaWYgKCRuYW1lZFNldHRlck9wZXJh
dGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q2FsbE5hbWVkU2V0dGVyT25seUZvclN1cHBvcnRl
ZFByb3BlcnRpZXN9KSB7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlv
bmFsSW5kZW50IC4gIiAgICBpZiAoIWlzUHJvcGVydHlTdXBwb3J0ZWQpXG4iKTsKLSAgICAgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGFkZGl0aW9uYWxJbmRlbnQgLiAiICAgICAgICByZXR1
cm4gSlNPYmplY3Q6OnB1dEJ5SW5kZXgoY2VsbCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgaW5kZXgs
IHZhbHVlLCBzaG91bGRUaHJvdyk7XG4iKTsKLSAgICAgICAgfQogICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50IC4gIiAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAg
ICAgICAKICAgICAgICAgaWYgKCEkbGVnYWN5T3ZlcnJpZGVCdWlsdGlucykgewpAQCAtMTQ3NSwx
MCArMTQ2NCw3IEBAIHN1YiBHZW5lcmF0ZURlZmluZU93blByb3BlcnR5CiAgICAgICAgICAgICAK
ICAgICAgICAgICAgICMgMi4yLjIuIEludm9rZSB0aGUgbmFtZWQgcHJvcGVydHkgc2V0dGVyIHdp
dGggUCBhbmQgRGVzYy5bW1ZhbHVlXV0uCiAgICAgICAgICAgICBHZW5lcmF0ZUludm9rZU5hbWVk
UHJvcGVydHlTZXR0ZXIoJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgICAg
ICIsICRpbnRlcmZhY2UsICRuYW1lZFNldHRlck9wZXJhdGlvbiwgInByb3BlcnR5RGVzY3JpcHRv
ci52YWx1ZSgpIik7Ci0gICAgICAgICAgICBpZiAoJG5hbWVkU2V0dGVyT3BlcmF0aW9uLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPntDYWxsTmFtZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVydGll
c30pIHsKLSAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5k
ZW50IC4gIiAgICBpZiAoIWlzUHJvcGVydHlTdXBwb3J0ZWQpXG4iKTsKLSAgICAgICAgICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50IC4gIiAgICAgICAgcmV0dXJu
IEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3Qs
IHByb3BlcnR5TmFtZSwgcHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7XG4iKTsKLSAg
ICAgICAgICAgIH0KKwogICAgICAgICAgICAgIyAyLjIuMy4gUmV0dXJuIHRydWUuCiAgICAgICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50IC4gIiAgICAgICAgcmV0
dXJuIHRydWU7XG4iKTsKICAgICAgICAgfQpAQCAtMTg1Myw3ICsxODM5LDcgQEAgc3ViIE1hbmds
ZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lCiAKICAgICAkbmFtZSA9fiBzLy0vX2Rhc2hfL2c7CiAK
LSAgICByZXR1cm4gJG5hbWU7CisgICAgcmV0dXJuICRuYW1lID1+IC9eXy8gPyAkbmFtZSA6ICdf
JyAuICRuYW1lOwogfQogCiBzdWIgR2V0QXR0cmlidXRlR2V0dGVyTmFtZQpAQCAtMTg2MSw5ICsx
ODQ3LDkgQEAgc3ViIEdldEF0dHJpYnV0ZUdldHRlck5hbWUKICAgICBteSAoJGludGVyZmFjZSwg
JGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSkgPSBAXzsKIAogICAgIHJldHVybiBHZXRKU0J1aWx0aW5G
dW5jdGlvbk5hbWUoJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSkgaWYgSXNKU0J1aWx0aW4oJGludGVy
ZmFjZSwgJGF0dHJpYnV0ZSk7Ci0gICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0
KCRjbGFzc05hbWUpIC4gIkNvbnN0cnVjdG9yIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0
KE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpKSBpZiAkYXR0
cmlidXRlLT5pc1N0YXRpYzsKLSAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3Qo
JGNsYXNzTmFtZSkgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdChNYW5nbGVBdHRyaWJ1dGVP
ckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSkgLiAiQ29uc3RydWN0b3IiIGlmICRjb2Rl
R2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVHlwZSgkYXR0cmlidXRlLT50eXBlKTsKLSAgICByZXR1
cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAkY29kZUdlbmVyYXRv
ci0+V0tfdWNmaXJzdChNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5u
YW1lKSk7CisgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUp
IC4gIkNvbnN0cnVjdG9yIiAuIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1
dGUtPm5hbWUpIGlmICRhdHRyaWJ1dGUtPmlzU3RhdGljOworICAgIHJldHVybiAkY29kZUdlbmVy
YXRvci0+V0tfbGNmaXJzdCgkY2xhc3NOYW1lKSAuIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25O
YW1lKCRhdHRyaWJ1dGUtPm5hbWUpIC4gIkNvbnN0cnVjdG9yIiBpZiAkY29kZUdlbmVyYXRvci0+
SXNDb25zdHJ1Y3RvclR5cGUoJGF0dHJpYnV0ZS0+dHlwZSk7CisgICAgcmV0dXJuICRjb2RlR2Vu
ZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUpIC4gTWFuZ2xlQXR0cmlidXRlT3JGdW5jdGlv
bk5hbWUoJGF0dHJpYnV0ZS0+bmFtZSk7CiB9CiAKIHN1YiBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1l
CkBAIC0xODcxLDkgKzE4NTcsOSBAQCBzdWIgR2V0QXR0cmlidXRlU2V0dGVyTmFtZQogICAgIG15
ICgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKSA9IEBfOwogCiAgICAgcmV0dXJu
ICJzZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoR2V0SlNCdWlsdGluRnVuY3Rpb25O
YW1lKCRjbGFzc05hbWUsICRhdHRyaWJ1dGUpKSBpZiBJc0pTQnVpbHRpbigkaW50ZXJmYWNlLCAk
YXR0cmlidXRlKTsKLSAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJz
dCgkY2xhc3NOYW1lKSAuICJDb25zdHJ1Y3RvciIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJz
dChNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSkgaWYgJGF0
dHJpYnV0ZS0+aXNTdGF0aWM7Ci0gICAgcmV0dXJuICJzZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldL
X3VjZmlyc3QoJGNsYXNzTmFtZSkgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdChNYW5nbGVB
dHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSkgLiAiQ29uc3RydWN0b3Ii
IGlmICRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVHlwZSgkYXR0cmlidXRlLT50eXBlKTsK
LSAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY2xhc3NOYW1l
KSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25O
YW1lKCRhdHRyaWJ1dGUtPm5hbWUpKTsKKyAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRv
ci0+V0tfdWNmaXJzdCgkY2xhc3NOYW1lKSAuICJDb25zdHJ1Y3RvciIgLiBNYW5nbGVBdHRyaWJ1
dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSBpZiAkYXR0cmlidXRlLT5pc1N0YXRp
YzsKKyAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY2xhc3NO
YW1lKSAuIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpIC4g
IkNvbnN0cnVjdG9yIiBpZiAkY29kZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3RvclR5cGUoJGF0dHJp
YnV0ZS0+dHlwZSk7CisgICAgcmV0dXJuICJzZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmly
c3QoJGNsYXNzTmFtZSkgLiBNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRl
LT5uYW1lKTsKIH0KIAogc3ViIEdldEZ1bmN0aW9uTmFtZQpAQCAtMTg4Niw3ICsxODcyLDcgQEAg
c3ViIEdldEZ1bmN0aW9uTmFtZQogICAgICRmdW5jdGlvbk5hbWUgPSAiU3ltYm9sSXRlcmF0b3Ii
IGlmICRmdW5jdGlvbk5hbWUgZXEgIltTeW1ib2wuSXRlcmF0b3JdIjsKIAogICAgIG15ICRraW5k
ID0gJG9wZXJhdGlvbi0+aXNTdGF0aWMgPyAiQ29uc3RydWN0b3IiIDogKE9wZXJhdGlvblNob3Vs
ZEJlT25JbnN0YW5jZSgkaW50ZXJmYWNlLCAkb3BlcmF0aW9uKSA/ICJJbnN0YW5jZSIgOiAiUHJv
dG90eXBlIik7Ci0gICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05h
bWUpIC4gJGtpbmQgLiAiRnVuY3Rpb24iIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoTWFu
Z2xlQXR0cmlidXRlT3JGdW5jdGlvbk5hbWUoJGZ1bmN0aW9uTmFtZSkpOworICAgIHJldHVybiAk
Y29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkY2xhc3NOYW1lKSAuICRraW5kIC4gIkZ1bmN0aW9u
IiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRmdW5jdGlvbk5hbWUpOwogfQogCiBzdWIg
R2V0RnVsbHlRdWFsaWZpZWRJbXBsZW1lbnRhdGlvbkNhbGxOYW1lCkBAIC0yMjA0LDggKzIxOTAs
NiBAQCBzdWIgSW5zdGFuY2VPdmVycmlkZXNEZWZpbmVPd25Qcm9wZXJ0eQogewogICAgIG15ICRp
bnRlcmZhY2UgPSBzaGlmdDsKIAotICAgIHJldHVybiAwIGlmICRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0RlZmF1bHREZWZpbmVPd25Qcm9wZXJ0eX07Ci0KICAgICByZXR1cm4gJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tRGVmaW5lT3duUHJvcGVydHl9CiAg
ICAgICAgIHx8IEdldEluZGV4ZWRTZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSkKICAgICAgICAg
fHwgR2V0TmFtZWRTZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSk7CkBAIC0zOTc5LDYgKzM5NjMs
OSBAQCBzdWIgR2V0U2tpcFZUYWJsZVZhbGlkYXRpb25Gb3JJbnRlcmZhY2UKIHN1YiBUb01ldGhv
ZE5hbWUKIHsKICAgICBteSAkcGFyYW0gPSBzaGlmdDsKKyAgICAKKyAgICByZXR1cm4gJHBhcmFt
IGlmICRwYXJhbSA9fiAvXkNTU09NLzsKKwogICAgIG15ICRyZXQgPSBsY2ZpcnN0KCRwYXJhbSk7
CiAgICAgJHJldCA9fiBzL2NTUy9jc3MvIGlmICRyZXQgPX4gL15jU1MvOwogICAgICRyZXQgPX4g
cy9kT00vZG9tLyBpZiAkcmV0ID1+IC9eZE9NLzsKQEAgLTUzMjIsNiArNTMwOSwxNSBAQCBzdWIg
R2VuZXJhdGVBdHRyaWJ1dGVHZXR0ZXJCb2R5RGVmaW5pdGlvCiAgICAgICAgICAgICBBZGRUb0lt
cGxJbmNsdWRlcygiSlMiIC4gJGNvbnN0cnVjdG9yVHlwZSAuICIuaCIsICRjb25kaXRpb25hbCk7
CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEpTIiAuICRjb25z
dHJ1Y3RvclR5cGUgLiAiOjoke2NvbnN0cnVjdG9yR2V0dGVyfShKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7XG4iKTsKICAgICAgICAg
fQorICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NTU1Byb3Bl
cnR5fSkgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyJDU1NQcm9wZXJ0eU5hbWVzLmgifSA9IDE7
CisgICAgICAgIG15ICRwcm9wZXJ0eUlEID0gJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Q1NTUHJvcGVydHl9OworICAgICAgICAKKyAgICAgICAgbXkgJGdldHRlck5hbWUgPSAkYXR0
cmlidXRlLT50eXBlLT5pc1VuaW9uID8gImdldFByb3BlcnR5VmFsdWVJbnRlcm5hbEZvclBvc09y
UGl4ZWxQcmVmaXhlZCIgOiAiZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsIjsKKyAgICAgICAgCisg
ICAgICAgIG15ICR0b0pTRXhwcmVzc2lvbiA9IE5hdGl2ZVRvSlNWYWx1ZVVzaW5nUmVmZXJlbmNl
cygkYXR0cmlidXRlLCAkaW50ZXJmYWNlLCAiaW1wbC4ke2dldHRlck5hbWV9KENTU1Byb3BlcnR5
JHtwcm9wZXJ0eUlEfSkiLCAiKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkiKTsKKyAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQo
KTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICgke3RvSlNFeHByZXNzaW9ufSkpO1xuIik7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NhY2hlZEF0dHJp
YnV0ZX0pIHsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoSlNWYWx1
ZSBjYWNoZWRWYWx1ZSA9IHRoaXNPYmplY3QubV8iIC4gJGF0dHJpYnV0ZS0+bmFtZSAuICIuZ2V0
KCkpXG4iKTsKQEAgLTU0NjYsNiArNTQ2MiwyMyBAQCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVTZXR0
ZXJCb2R5RGVmaW5pdGlvCiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB2bS5oZWFw
LndyaXRlQmFycmllcigmdGhpc09iamVjdCwgdmFsdWUpO1xuIik7CiAgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICBlbnN1cmVTdGlsbEFsaXZlSGVyZSh2YWx1ZSk7XG5cbiIpOwogICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIHRydWU7XG4iKTsKKyAgICB9IGVs
c2lmICgkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDU1NQcm9wZXJ0eX0pIHsKKyAg
ICAgICAgJGltcGxJbmNsdWRlc3siQ1NTUHJvcGVydHlOYW1lcy5oIn0gPSAxOworCisgICAgICAg
IG15ICRwcm9wZXJ0eUlEID0gJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q1NTUHJv
cGVydHl9OworICAgICAgICAKKyAgICAgICAgbXkgJHNldHRlck5hbWUgPSAkYXR0cmlidXRlLT50
eXBlLT5pc1VuaW9uID8gInNldFByb3BlcnR5VmFsdWVJbnRlcm5hbEZvclBvc09yUGl4ZWxQcmVm
aXhlZCIgOiAic2V0UHJvcGVydHlWYWx1ZUludGVybmFsIjsKKyAgICAgICAgCisgICAgICAgIG15
ICRleGNlcHRpb25UaHJvd2VyID0gR2V0QXR0cmlidXRlRXhjZXB0aW9uVGhyb3dlcigkaW50ZXJm
YWNlLCAkYXR0cmlidXRlKTsKKyAgICAgICAgbXkgJHRvTmF0aXZlRXhwcmVzc2lvbiA9IEpTVmFs
dWVUb05hdGl2ZSgkaW50ZXJmYWNlLCAkYXR0cmlidXRlLCAidmFsdWUiLCAkYXR0cmlidXRlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbH0sICImbGV4aWNhbEdsb2JhbE9iamVjdCIs
ICJsZXhpY2FsR2xvYmFsT2JqZWN0IiwgInRoaXNPYmplY3QiLCAiKnRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCkiLCAkZXhjZXB0aW9uVGhyb3dlcik7CisKKyAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTtcbiIpOworICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0byBuYXRpdmVWYWx1ZSA9ICR7dG9OYXRpdmVF
eHByZXNzaW9ufTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIEF0dHJpYnV0ZVNldHRlcjo6Y2FsbChsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBbJl0ge1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICAgICAgcmV0dXJuIGltcGwuJHtzZXR0ZXJOYW1lfShDU1NQcm9wZXJ0eSR7cHJvcGVydHlJRH0s
IFdURk1vdmUobmF0aXZlVmFsdWUpKTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgfSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiB0
cnVlO1xuIik7CiAgICAgfSBlbHNpZiAoJGlzQ29uc3RydWN0b3IpIHsKICAgICAgICAgbXkgJGNv
bnN0cnVjdG9yVHlwZSA9ICRhdHRyaWJ1dGUtPnR5cGUtPm5hbWU7CiAgICAgICAgICRjb25zdHJ1
Y3RvclR5cGUgPX4gcy9Db25zdHJ1Y3RvciQvLzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uCShyZXZpc2lvbiAyNjg1MDUp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgko
d29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksMTAgQEAKICAgICAgICAgICAgICAgICAidXJsIjog
Imh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2N1c3RvbS1lbGVtZW50cy5o
dG1sI2NlcmVhY3Rpb25zIgogICAgICAgICAgICAgfQogICAgICAgICB9LAorICAgICAgICAiQ1NT
UHJvcGVydHkiOiB7CisgICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJhdHRyaWJ1dGUi
XSwKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbIioiXQorICAgICAgICB9LAogICAgICAgICAiQ2Fj
aGVkQXR0cmlidXRlIjogewogICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiYXR0cmli
dXRlIl0KICAgICAgICAgfSwKQEAgLTQ5LDkgKzUzLDYgQEAKICAgICAgICAgIkNhbGxiYWNrVGhp
c09iamVjdCI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImNhbGxiYWNrLWZ1
bmN0aW9uIiwgIm9wZXJhdGlvbiJdCiAgICAgICAgIH0sCi0gICAgICAgICJDYWxsTmFtZWRTZXR0
ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVydGllcyI6IHsKLSAgICAgICAgICAgICJjb250ZXh0c0Fs
bG93ZWQiOiBbIm9wZXJhdGlvbiJdCi0gICAgICAgIH0sCiAgICAgICAgICJDYWxsV2l0aCI6IHsK
ICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImF0dHJpYnV0ZSIsICJvcGVyYXRpb24i
XSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbIkRvY3VtZW50IiwgIkV4ZWNTdGF0ZSIsICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0IiwgIkdsb2JhbE9iamVjdCIsICJBY3RpdmVXaW5kb3ciLCAiRmly
c3RXaW5kb3ciLCAiUmVzcG9uc2libGVEb2N1bWVudCIsICJXb3JsZCJdLApAQCAtMTU3LDkgKzE1
OCw2IEBACiAgICAgICAgICJEZWZhdWx0IjogewogICAgICAgICAgICAgImNvbnRleHRzQWxsb3dl
ZCI6IFsib3BlcmF0aW9uIl0KICAgICAgICAgfSwKLSAgICAgICAgIkRlZmF1bHREZWZpbmVPd25Q
cm9wZXJ0eSI6IHsKLSAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImludGVyZmFjZSJd
Ci0gICAgICAgIH0sCiAgICAgICAgICJEaXNhYmxlZEJ5UXVpcmsiOiB7CiAgICAgICAgICAgICAi
Y29udGV4dHNBbGxvd2VkIjogWyJpbnRlcmZhY2UiLCAiZGljdGlvbmFyeSIsICJlbnVtIiwgImF0
dHJpYnV0ZSIsICJvcGVyYXRpb24iLCAiY29uc3RhbnQiLCAiZGljdGlvbmFyeS1tZW1iZXIiLCAi
aW5jbHVkZXMiXSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbIioiXSwKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlzaW9uIDI2ODUwNSkKKysr
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjY4LDQ4ICsyNjgsOCBAQCBzdGF0aWMgQ1NTUHJvcGVydHlJbmZvIHByb3BlcnR5SW5m
b0Zyb21KCiAKIH0KIAotQ1NTUHJvcGVydHlJRCBDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRDU1NQ
cm9wZXJ0eUlERnJvbUphdmFTY3JpcHRQcm9wZXJ0eU5hbWUoY29uc3QgQXRvbVN0cmluZyYgcHJv
cGVydHlOYW1lKQotewotICAgIHJldHVybiBwcm9wZXJ0eUluZm9Gcm9tSmF2YVNjcmlwdENTU1By
b3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUsIG51bGxwdHIpLnByb3BlcnR5SUQ7Ci19Ci0KLU9wdGlv
bmFsPFZhcmlhbnQ8U3RyaW5nLCBkb3VibGU+PiBDU1NTdHlsZURlY2xhcmF0aW9uOjpuYW1lZEl0
ZW0oY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lKQorRXhjZXB0aW9uT3I8dm9pZD4gQ1NT
U3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJvcGVydHlWYWx1ZUludGVybmFsKENTU1Byb3BlcnR5SUQg
cHJvcGVydHlJRCwgU3RyaW5nIHZhbHVlKQogewotICAgIGF1dG8qIHNldHRpbmdzID0gcGFyZW50
RWxlbWVudCgpID8gJnBhcmVudEVsZW1lbnQoKS0+ZG9jdW1lbnQoKS5zZXR0aW5ncygpIDogbnVs
bHB0cjsKLSAgICBhdXRvIHByb3BlcnR5SW5mbyA9IHByb3BlcnR5SW5mb0Zyb21KYXZhU2NyaXB0
Q1NTUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSwgc2V0dGluZ3MpOwotICAgIGlmICghcHJvcGVy
dHlJbmZvLnByb3BlcnR5SUQpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICBh
dXRvIHZhbHVlID0gZ2V0UHJvcGVydHlDU1NWYWx1ZUludGVybmFsKHByb3BlcnR5SW5mby5wcm9w
ZXJ0eUlEKTsKLSAgICBpZiAoIXZhbHVlKSB7Ci0gICAgICAgIC8vIElmIHRoZSBwcm9wZXJ0eSBp
cyBhIHNob3J0aGFuZCBwcm9wZXJ0eSAoc3VjaCBhcyAicGFkZGluZyIpLCBpdCBjYW4gb25seSBi
ZSBhY2Nlc3NlZCB1c2luZyBnZXRQcm9wZXJ0eVZhbHVlLgotICAgICAgICByZXR1cm4gVmFyaWFu
dDxTdHJpbmcsIGRvdWJsZT4geyBnZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWwocHJvcGVydHlJbmZv
LnByb3BlcnR5SUQpIH07Ci0gICAgfQotICAgIAotICAgIGlmIChwcm9wZXJ0eUluZm8uaGFkUGl4
ZWxPclBvc1ByZWZpeCAmJiBpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKSkgewotICAgICAg
ICAvLyBDYWxsIHRoaXMgdmVyc2lvbiBvZiB0aGUgZ2V0dGVyIHNvIHRoYXQsIGUuZy4sIHBpeGVs
VG9wIHJldHVybnMgdG9wIGFzIGEgbnVtYmVyCi0gICAgICAgIC8vIGluIHBpeGVsIHVuaXRzIGFu
ZCBwb3NUb3Agc2hvdWxkIGRvZXMgdGhlIHNhbWUgX2lmXyB0aGlzIGlzIGEgcG9zaXRpb25lZCBl
bGVtZW50LgotICAgICAgICAvLyBGSVhNRTogSWYgbm90IGEgcG9zaXRpb25lZCBlbGVtZW50LCBN
U0lFIGRvY3VtZW50YXRpb24gc2F5cyBwb3NUb3Agc2hvdWxkIHJldHVybiAwOyB0aGlzIHJ1bGUg
aXMgbm90IGltcGxlbWVudGVkLgotICAgICAgICByZXR1cm4gVmFyaWFudDxTdHJpbmcsIGRvdWJs
ZT4geyBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS5mbG9hdFZhbHVlKENTU1Vu
aXRUeXBlOjpDU1NfUFgpIH07Ci0gICAgfQotCi0gICAgcmV0dXJuIFZhcmlhbnQ8U3RyaW5nLCBk
b3VibGU+IHsgdmFsdWUtPmNzc1RleHQoKSB9OwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBDU1NT
dHlsZURlY2xhcmF0aW9uOjpzZXROYW1lZEl0ZW0oY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlO
YW1lLCBTdHJpbmcgdmFsdWUsIGJvb2wmIHByb3BlcnR5U3VwcG9ydGVkKQotewotICAgIGF1dG8q
IHNldHRpbmdzID0gcGFyZW50RWxlbWVudCgpID8gJnBhcmVudEVsZW1lbnQoKS0+ZG9jdW1lbnQo
KS5zZXR0aW5ncygpIDogbnVsbHB0cjsKLSAgICBhdXRvIHByb3BlcnR5SW5mbyA9IHByb3BlcnR5
SW5mb0Zyb21KYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSwgc2V0dGluZ3Mp
OwotICAgIGlmICghcHJvcGVydHlJbmZvLnByb3BlcnR5SUQpIHsKLSAgICAgICAgcHJvcGVydHlT
dXBwb3J0ZWQgPSBmYWxzZTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0KLSAgICBwcm9w
ZXJ0eVN1cHBvcnRlZCA9IHRydWU7Ci0KLSAgICBpZiAocHJvcGVydHlJbmZvLmhhZFBpeGVsT3JQ
b3NQcmVmaXgpCi0gICAgICAgIHZhbHVlLmFwcGVuZCgicHgiKTsKLQogICAgIGJvb2wgaW1wb3J0
YW50ID0gZmFsc2U7CiAgICAgaWYgKERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2hvdWxkUmVz
cGVjdFByaW9yaXR5SW5DU1NBdHRyaWJ1dGVTZXR0ZXJzKCkpIHsKICAgICAgICAgYXV0byBpbXBv
cnRhbnRJbmRleCA9IHZhbHVlLmZpbmRJZ25vcmluZ0FTQ0lJQ2FzZSgiIWltcG9ydGFudCIpOwpA
QCAtMzE5LDM4ICsyNzksNDMgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ1NTU3R5bGVEZWNsYXJhdGlv
bjo6cwogICAgICAgICB9CiAgICAgfQogCi0gICAgYXV0byBzZXRQcm9wZXJ0eUludGVybmFsUmVz
dWx0ID0gc2V0UHJvcGVydHlJbnRlcm5hbChwcm9wZXJ0eUluZm8ucHJvcGVydHlJRCwgdmFsdWUs
IGltcG9ydGFudCk7CisgICAgYXV0byBzZXRQcm9wZXJ0eUludGVybmFsUmVzdWx0ID0gc2V0UHJv
cGVydHlJbnRlcm5hbChwcm9wZXJ0eUlELCB2YWx1ZSwgaW1wb3J0YW50KTsKICAgICBpZiAoc2V0
UHJvcGVydHlJbnRlcm5hbFJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIHNl
dFByb3BlcnR5SW50ZXJuYWxSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogCiAgICAgcmV0dXJu
IHsgfTsKIH0KIAotVmVjdG9yPEF0b21TdHJpbmc+IENTU1N0eWxlRGVjbGFyYXRpb246OnN1cHBv
cnRlZFByb3BlcnR5TmFtZXMoKSBjb25zdAorVmFyaWFudDxkb3VibGUsIFN0cmluZz4gQ1NTU3R5
bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZp
eGVkKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkKIHsKLSAgICBzdGF0aWMgdW5zaWduZWQgbnVt
TmFtZXMgPSAwOwotICAgIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nKiBjb25zdCBjc3NQcm9wZXJ0
eU5hbWVzID0gW10gewotICAgICAgICBTdHJpbmcgbmFtZXNbbnVtQ1NTUHJvcGVydGllc107Ci0g
ICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ1NTUHJvcGVydGllczsgKytpKSB7Ci0gICAg
ICAgICAgICBDU1NQcm9wZXJ0eUlEIGlkID0gc3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHlJRD4oZmly
c3RDU1NQcm9wZXJ0eSArIGkpOwotICAgICAgICAgICAgLy8gRklYTUU6IFNob3VsZCB0YWtlIGFj
Y291bnQgZm9yIGZsYWdzIGluIHNldHRpbmdzKCkuCi0gICAgICAgICAgICBpZiAoaXNFbmFibGVk
Q1NTUHJvcGVydHkoaWQpKQotICAgICAgICAgICAgICAgIG5hbWVzW251bU5hbWVzKytdID0gZ2V0
SlNQcm9wZXJ0eU5hbWUoaWQpOwotICAgICAgICB9Ci0gICAgICAgIHN0ZDo6c29ydCgmbmFtZXNb
MF0sICZuYW1lc1tudW1OYW1lc10sIFdURjo6Y29kZVBvaW50Q29tcGFyZUxlc3NUaGFuKTsKLSAg
ICAgICAgYXV0byogaWRlbnRpZmllcnMgPSBuZXcgQXRvbVN0cmluZ1tudW1OYW1lc107Ci0gICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1OYW1lczsgKytpKQotICAgICAgICAgICAg
aWRlbnRpZmllcnNbaV0gPSBuYW1lc1tpXTsKLSAgICAgICAgcmV0dXJuIGlkZW50aWZpZXJzOwot
ICAgIH0oKTsKKyAgICBhdXRvIHZhbHVlID0gZ2V0UHJvcGVydHlDU1NWYWx1ZUludGVybmFsKHBy
b3BlcnR5SUQpOworICAgIGlmICghdmFsdWUpIHsKKyAgICAgICAgLy8gSWYgdGhlIHByb3BlcnR5
IGlzIGEgc2hvcnRoYW5kIHByb3BlcnR5IChzdWNoIGFzICJwYWRkaW5nIiksIGl0IGNhbiBvbmx5
IGJlIGFjY2Vzc2VkIHVzaW5nIGdldFByb3BlcnR5VmFsdWUuCisgICAgICAgIHJldHVybiBnZXRQ
cm9wZXJ0eVZhbHVlSW50ZXJuYWwocHJvcGVydHlJRCk7CisgICAgfQorICAgIAorICAgIGlmIChp
czxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKSkgeworICAgICAgICAvLyBDYWxsIHRoaXMgdmVy
c2lvbiBvZiB0aGUgZ2V0dGVyIHNvIHRoYXQsIGUuZy4sIHBpeGVsVG9wIHJldHVybnMgdG9wIGFz
IGEgbnVtYmVyCisgICAgICAgIC8vIGluIHBpeGVsIHVuaXRzIGFuZCBwb3NUb3Agc2hvdWxkIGRv
ZXMgdGhlIHNhbWUgX2lmXyB0aGlzIGlzIGEgcG9zaXRpb25lZCBlbGVtZW50LgorICAgICAgICAv
LyBGSVhNRTogSWYgbm90IGEgcG9zaXRpb25lZCBlbGVtZW50LCBNU0lFIGRvY3VtZW50YXRpb24g
c2F5cyBwb3NUb3Agc2hvdWxkIHJldHVybiAwOyB0aGlzIHJ1bGUgaXMgbm90IGltcGxlbWVudGVk
LgorICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkuZmxv
YXRWYWx1ZShDU1NVbml0VHlwZTo6Q1NTX1BYKTsKKyAgICB9CiAKLSAgICBWZWN0b3I8QXRvbVN0
cmluZz4gcmVzdWx0OwotICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG51bU5hbWVz
KTsKKyAgICByZXR1cm4gdmFsdWUtPmNzc1RleHQoKTsKK30KIAotICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBudW1OYW1lczsgKytpKQotICAgICAgICByZXN1bHQudW5jaGVja2VkQXBwZW5k
KGNzc1Byb3BlcnR5TmFtZXNbaV0pOworRXhjZXB0aW9uT3I8dm9pZD4gQ1NTU3R5bGVEZWNsYXJh
dGlvbjo6c2V0UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZpeGVkKENTU1By
b3BlcnR5SUQgcHJvcGVydHlJRCwgVmFyaWFudDxkb3VibGUsIFN0cmluZz4gdmFsdWUpCit7Cisg
ICAgU3RyaW5nIHN0cmluZ1ZhbHVlID0gV1RGOjpzd2l0Y2hPbih2YWx1ZSwgWyZdIChjb25zdCBh
dXRvJiBpbnB1dCkgeworICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhzdHJpbmcsICJweCIpOwor
ICAgIH0pOwogCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gc2V0UHJvcGVydHlWYWx1
ZUludGVybmFsKHByb3BlcnR5SUQsIFdURk1vdmUoc3RyaW5nVmFsdWUpKTsKK30KKworQ1NTUHJv
cGVydHlJRCBDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRDU1NQcm9wZXJ0eUlERnJvbUphdmFTY3Jp
cHRQcm9wZXJ0eU5hbWUoY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lKQoreworICAgIHJl
dHVybiBwcm9wZXJ0eUluZm9Gcm9tSmF2YVNjcmlwdENTU1Byb3BlcnR5TmFtZShwcm9wZXJ0eU5h
bWUsIG51bGxwdHIpLnByb3BlcnR5SUQ7CiB9CiAKIFN0cmluZyBDU1NTdHlsZURlY2xhcmF0aW9u
Ojpjc3NGbG9hdCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlv
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9u
LmgJKHJldmlzaW9uIDI2ODUwNSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xh
cmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTY2LDE4ICs2NiwxOCBAQCBwdWJsaWM6CiAgICAg
Ly8gVGhlIENTU1ZhbHVlIHJldHVybmVkIGJ5IHRoaXMgZnVuY3Rpb24gc2hvdWxkIG5vdCBiZSBl
eHBvc2VkIHRvIHRoZSB3ZWIgYXMgaXQgbWF5IGJlIHVzZWQgYnkgbXVsdGlwbGUgZG9jdW1lbnRz
IGF0IHRoZSBzYW1lIHRpbWUuCiAgICAgdmlydHVhbCBSZWZQdHI8Q1NTVmFsdWU+IGdldFByb3Bl
cnR5Q1NTVmFsdWVJbnRlcm5hbChDU1NQcm9wZXJ0eUlEKSA9IDA7CiAgICAgdmlydHVhbCBTdHJp
bmcgZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsKENTU1Byb3BlcnR5SUQpID0gMDsKLSAgICB2aXJ0
dWFsIEV4Y2VwdGlvbk9yPGJvb2w+IHNldFByb3BlcnR5SW50ZXJuYWwoQ1NTUHJvcGVydHlJRCwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQpID0gMDsKKyAgICB2aXJ0dWFsIEV4
Y2VwdGlvbk9yPGJvb2w+IHNldFByb3BlcnR5SW50ZXJuYWwoQ1NTUHJvcGVydHlJRCwgU3RyaW5n
IHZhbHVlLCBib29sIGltcG9ydGFudCkgPSAwOwogCiAgICAgdmlydHVhbCBSZWY8TXV0YWJsZVN0
eWxlUHJvcGVydGllcz4gY29weVByb3BlcnRpZXMoKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFs
IENTU1N0eWxlU2hlZXQqIHBhcmVudFN0eWxlU2hlZXQoKSBjb25zdCB7IHJldHVybiBudWxscHRy
OyB9CiAKLSAgICAvLyBCaW5kaW5ncyBzdXBwb3J0LgotICAgIE9wdGlvbmFsPFZhcmlhbnQ8U3Ry
aW5nLCBkb3VibGU+PiBuYW1lZEl0ZW0oY29uc3QgQXRvbVN0cmluZyYpOwotICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHNldE5hbWVkSXRlbShjb25zdCBBdG9tU3RyaW5nJiBuYW1lLCBTdHJpbmcgdmFs
dWUsIGJvb2wmIHByb3BlcnR5U3VwcG9ydGVkKTsKLSAgICBWZWN0b3I8QXRvbVN0cmluZz4gc3Vw
cG9ydGVkUHJvcGVydHlOYW1lcygpIGNvbnN0OworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFBy
b3BlcnR5VmFsdWVJbnRlcm5hbChDU1NQcm9wZXJ0eUlELCBTdHJpbmcpOworICAgIFZhcmlhbnQ8
ZG91YmxlLCBTdHJpbmc+IGdldFByb3BlcnR5VmFsdWVJbnRlcm5hbEZvclBvc09yUGl4ZWxQcmVm
aXhlZChDU1NQcm9wZXJ0eUlEKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRQcm9wZXJ0eVZh
bHVlSW50ZXJuYWxGb3JQb3NPclBpeGVsUHJlZml4ZWQoQ1NTUHJvcGVydHlJRCwgVmFyaWFudDxk
b3VibGUsIFN0cmluZz4pOwogCiAgICAgc3RhdGljIENTU1Byb3BlcnR5SUQgZ2V0Q1NTUHJvcGVy
dHlJREZyb21KYXZhU2NyaXB0UHJvcGVydHlOYW1lKGNvbnN0IEF0b21TdHJpbmcmKTsKKwogcHJv
dGVjdGVkOgogICAgIENTU1N0eWxlRGVjbGFyYXRpb24oKSA9IGRlZmF1bHQ7CiB9OwpJbmRleDog
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbAkocmV2aXNpb24gMjY4
NTA1KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NywgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDYsIDIwMDcsIDIwMDksIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29t
PgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKQEAgLTE4LDQwICsxOCwyOSBAQAogICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCiAgKi8KIAordHlwZWRlZiBVU1ZTdHJpbmcgQ1NTT01TdHJpbmc7CisKIFsKICAg
ICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKLSAgICBEZWZhdWx0RGVmaW5lT3duUHJvcGVy
dHksCiAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZSwKICAgICBKU0N1c3RvbUhlYWRlciwKICAgICBK
U0N1c3RvbU1hcmtGdW5jdGlvbiwKICAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbiwKICAgICBFeHBv
c2VkPVdpbmRvdwogXSBpbnRlcmZhY2UgQ1NTU3R5bGVEZWNsYXJhdGlvbiB7Ci0gICAgW0NFUmVh
Y3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNzc1RleHQ7Ci0KLSAgICBET01TdHJpbmcgZ2V0
UHJvcGVydHlWYWx1ZShET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKLQotICAgIFtDRVJlYWN0aW9u
cywgTWF5VGhyb3dFeGNlcHRpb25dIERPTVN0cmluZyByZW1vdmVQcm9wZXJ0eShET01TdHJpbmcg
cHJvcGVydHlOYW1lKTsKLSAgICBET01TdHJpbmc/IGdldFByb3BlcnR5UHJpb3JpdHkoRE9NU3Ry
aW5nIHByb3BlcnR5TmFtZSk7Ci0KLSAgICBbQ0VSZWFjdGlvbnMsIE1heVRocm93RXhjZXB0aW9u
XSB1bmRlZmluZWQgc2V0UHJvcGVydHkoRE9NU3RyaW5nIHByb3BlcnR5TmFtZSwgW0xlZ2FjeU51
bGxUb0VtcHR5U3RyaW5nXSBET01TdHJpbmcgdmFsdWUsIG9wdGlvbmFsIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gRE9NU3RyaW5nIHByaW9yaXR5ID0gIiIpOwotCisgICAgW0NFUmVhY3Rpb25z
XSBhdHRyaWJ1dGUgQ1NTT01TdHJpbmcgY3NzVGV4dDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUg
dW5zaWduZWQgbG9uZyBsZW5ndGg7Ci0gICAgZ2V0dGVyIERPTVN0cmluZyBpdGVtKHVuc2lnbmVk
IGxvbmcgaW5kZXgpOworICAgIGdldHRlciBDU1NPTVN0cmluZyBpdGVtKHVuc2lnbmVkIGxvbmcg
aW5kZXgpOworICAgIENTU09NU3RyaW5nIGdldFByb3BlcnR5VmFsdWUoQ1NTT01TdHJpbmcgcHJv
cGVydHkpOworICAgIC8vIEZJWE1FOiBUaGUgcmV0dXJuIHZhbHVlIG9mICdnZXRQcm9wZXJ0eVBy
aW9yaXR5JyBzaG91bGQgbm90IGJlIG51bGxhYmxlLgorICAgIENTU09NU3RyaW5nPyBnZXRQcm9w
ZXJ0eVByaW9yaXR5KENTU09NU3RyaW5nIHByb3BlcnR5KTsKKyAgICBbQ0VSZWFjdGlvbnMsIE1h
eVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc2V0UHJvcGVydHkoQ1NTT01TdHJpbmcgcHJvcGVy
dHksIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgdmFsdWUsIG9wdGlvbmFs
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgcHJpb3JpdHkgPSAiIik7Cisg
ICAgW0NFUmVhY3Rpb25zLCBNYXlUaHJvd0V4Y2VwdGlvbl0gQ1NTT01TdHJpbmcgcmVtb3ZlUHJv
cGVydHkoQ1NTT01TdHJpbmcgcHJvcGVydHkpOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NS
dWxlPyBwYXJlbnRSdWxlOworICAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgY3NzRmxvYXQ7CiAKLSAgICBbQ0VSZWFjdGlvbnNd
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIERPTVN0cmluZyBjc3NGbG9hdDsK
LQorICAgIC8vIE5vbi1zdGFuZGFyZC4KICAgICBET01TdHJpbmc/IGdldFByb3BlcnR5U2hvcnRo
YW5kKG9wdGlvbmFsIERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwogICAgIGJvb2xlYW4gaXNQcm9w
ZXJ0eUltcGxpY2l0KG9wdGlvbmFsIERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwotCi0gICAgLy8g
VXNlIG5hbWVkIGdldHRlcnMvc2V0dGVycyBmb3IgYWxsIHN1cHBvcnQgQ1NTIHByb3BlcnR5IG5h
bWVzLiBUaGUgc3BlYyBzYXlzCi0gICAgLy8gdGhlc2Ugc2hvdWxkIGJlIG5vcm1hbCBhdHRyaWJ1
dGVzLCBidXQgdGhlcmUgYXJlIHRvbyBtYW55IGNvbWJpbmF0aW9ucyB3aXRoCi0gICAgLy8gcHJl
Zml4ZXMgZm9yIHRoaXMgdG8gYmUgcHJhY3RpY2FsLiBJZiB3ZSByZW1vdmUgbGVnYWN5IGFsaWFz
ZXMsIHdlIHNob3VsZAotICAgIC8vIHJlY29uc2lkZXIgdGhpcyBkZWNpc2lvbi4KLSAgICBnZXR0
ZXIgKERPTVN0cmluZyBvciBkb3VibGUpIChET01TdHJpbmcgbmFtZSk7Ci0gICAgW0NFUmVhY3Rp
b25zLCBDYWxsTmFtZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVydGllc10gc2V0dGVyIHVu
ZGVmaW5lZCAoRE9NU3RyaW5nIG5hbWUsIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gRE9NU3Ry
aW5nIHZhbHVlKTsKLQotICAgIC8vIFRoaXMgbWV0aG9kIGlzIGRlcHJlY2F0ZWQsIGFuZCB3ZSB3
b3VsZCBsaWtlIHRvIGRyb3Agc3VwcG9ydCBmb3IgaXQgc29tZWRheQogICAgIERlcHJlY2F0ZWRD
U1NPTVZhbHVlPyBnZXRQcm9wZXJ0eUNTU1ZhbHVlKERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwog
fTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwJKHJldmlzaW9uIDI2ODUwNSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAkod29ya2luZyBjb3B5KQpAQCAtMTM1OCwzICsxMzU4
LDE3NSBAQCBpZiAobm90ICRncGVyZikgewogICAgICRncGVyZiA9ICRFTlZ7R1BFUkZ9ID8gJEVO
VntHUEVSRn0gOiAiZ3BlcmYiOwogfQogc3lzdGVtKCJcIiRncGVyZlwiIC0ta2V5LXBvc2l0aW9u
cz1cIipcIiAtRCAtbiAtcyAyIENTU1Byb3BlcnR5TmFtZXMuZ3BlcmYgLS1vdXRwdXQtZmlsZT1D
U1NQcm9wZXJ0eU5hbWVzLmNwcCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDog
JD8iOworCisKKyMgR2VuZXJhdGUgQ1NTU3R5bGVEZWNsYXJhdGlvbitQcm9wZXJ0eU5hbWVzLmlk
bAorCisjIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS8jY3NzLXByb3BlcnR5LXRvLWlk
bC1hdHRyaWJ1dGUKK3N1YiBjc3NQcm9wZXJ0eVRvSURMQXR0cmlidXRlKCQkJCkKK3sKKyAgICBt
eSAkcHJvcGVydHkgPSBzaGlmdDsKKyAgICBteSAkbG93ZXJjYXNlRmlyc3QgPSBzaGlmdDsKKyAg
ICBteSAkdXBwZXJjYXNlRmlyc3QgPSBzaGlmdDsKKworICAgIG15ICRvdXRwdXQgPSAiIjsKKyAg
ICBteSAkdXBwZXJjYXNlTmV4dCA9ICR1cHBlcmNhc2VGaXJzdDsKKworICAgIGlmICgkbG93ZXJj
YXNlRmlyc3QpIHsKKyAgICAgICAgJHByb3BlcnR5ID0gc3Vic3RyKCRwcm9wZXJ0eSwgMSk7Cisg
ICAgfQorCisgICAgZm9yZWFjaCBteSAkY2hhcmFjdGVyIChzcGxpdCAvLywgJHByb3BlcnR5KSB7
CisgICAgICAgIGlmICgkY2hhcmFjdGVyIGVxICItIikgeworICAgICAgICAgICAgJHVwcGVyY2Fz
ZU5leHQgPSAxOworICAgICAgICB9IGVsc2lmICgkdXBwZXJjYXNlTmV4dCkgeworICAgICAgICAg
ICAgJHVwcGVyY2FzZU5leHQgPSAwOworICAgICAgICAgICAgJG91dHB1dCAuPSB1YyAkY2hhcmFj
dGVyOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJG91dHB1dCAuPSAkY2hhcmFjdGVy
OworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHJldHVybiAkb3V0cHV0OworfQorCitteSAl
bmFtZXNBbmRBbGlhc2VzVG9OYW1lOworZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7CisgICAg
aWYgKGdyZXAgeyAkXyBlcSAkbmFtZSB9IEBpbnRlcm5hbFByb3ByZXJ0aWVzKSB7CisgICAgICAg
IG5leHQ7CisgICAgfQorICAgICRuYW1lc0FuZEFsaWFzZXNUb05hbWV7JG5hbWV9ID0gJG5hbWU7
CisgICAgZm9yIG15ICRhbGlhcyAoQHskbmFtZVRvQWxpYXNlc3skbmFtZX19KSB7CisgICAgICAg
ICRuYW1lc0FuZEFsaWFzZXNUb05hbWV7JGFsaWFzfSA9ICRuYW1lOworICAgIH0KK30KK215IEBu
YW1lc0FuZEFsaWFzZXMgPSBzb3J0IGtleXMoJW5hbWVzQW5kQWxpYXNlc1RvTmFtZSk7CisKK29w
ZW4gQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCwgIj4iLCAiQ1NTU3R5
bGVEZWNsYXJhdGlvbitQcm9wZXJ0eU5hbWVzLmlkbCIgb3IgZGllICJDb3VsZCBub3Qgb3BlbiBD
U1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsIGZvciB3cml0aW5nXG4iOworcHJp
bnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsKKy8v
IFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tICRpbnB1dEZpbGUgYnkg
dGhlIG1ha2Vwcm9wLnBsIHNjcmlwdC4gRG8gbm90IGVkaXQgaXQuCisKK3R5cGVkZWYgVVNWU3Ry
aW5nIENTU09NU3RyaW5nOworCitwYXJ0aWFsIGludGVyZmFjZSBDU1NTdHlsZURlY2xhcmF0aW9u
IHsKK0VPRgorIAorcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lE
TCA8PCAiRU9GIjsKKyAgICAvLyBGb3IgZWFjaCBDU1MgcHJvcGVydHkgcHJvcGVydHkgdGhhdCBp
cyBhIHN1cHBvcnRlZCBDU1MgcHJvcGVydHksIHRoZSBmb2xsb3dpbmcKKyAgICAvLyBwYXJ0aWFs
IGludGVyZmFjZSBhcHBsaWVzIHdoZXJlIGNhbWVsLWNhc2VkIGF0dHJpYnV0ZSBpcyBvYnRhaW5l
ZCBieSBydW5uaW5nIHRoZQorICAgIC8vIENTUyBwcm9wZXJ0eSB0byBJREwgYXR0cmlidXRlIGFs
Z29yaXRobSBmb3IgcHJvcGVydHkuCisgICAgLy8gRXhhbXBsZTogZm9udC1zaXplIC0+IGVsZW1l
bnQuc3R5bGUuZm9udFNpemUKKyAgICAvLyBFeGFtcGxlOiAtd2Via2l0LXRyYW5zZm9ybSAtPiBl
bGVtZW50LnN0eWxlLldlYmtpdFRyYW5zZm9ybQorICAgIC8vIFtDRVJlYWN0aW9uc10gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgX2NhbWVsX2Nhc2VkX2F0
dHJpYnV0ZTsKK0VPRgorCitmb3JlYWNoIG15ICRuYW1lT3JBbGlhcyAoQG5hbWVzQW5kQWxpYXNl
cykgeworICAgIG15ICRjYW1lbENhc2VkQXR0cmlidXRlTmFtZSA9IGNzc1Byb3BlcnR5VG9JRExB
dHRyaWJ1dGUoJG5hbWVPckFsaWFzLCAwLCAwKTsKKyAgICBteSAkbmFtZSA9ICRuYW1lc0FuZEFs
aWFzZXNUb05hbWV7JG5hbWVPckFsaWFzfTsKKyAgICBteSAkcHJvcGVydHlJZCA9ICRuYW1lVG9J
ZHskbmFtZXNBbmRBbGlhc2VzVG9OYW1leyRuYW1lfX07CisgICAgCisgICAgbXkgQGV4dGVuZGVk
QXR0cmlidXRlVmFsdWVzID0gKCJDU1NQcm9wZXJ0eT0ke3Byb3BlcnR5SWR9Iik7CisgICAgcHVz
aChAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMsICJFbmFibGVkQnlTZXR0aW5nPSR7c2V0dGluZ3NG
bGFnc3skbmFtZX19IikgaWYgJHNldHRpbmdzRmxhZ3N7JG5hbWV9OworICAgIHB1c2goQGV4dGVu
ZGVkQXR0cmlidXRlVmFsdWVzLCAiRW5hYmxlZEF0UnVudGltZT0ke3J1bnRpbWVGbGFnc3skbmFt
ZX19IikgaWYgJHJ1bnRpbWVGbGFnc3skbmFtZX07CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRl
cyA9IGpvaW4oIiwgIiwgQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzKTsKKworICAgIHByaW50IENT
U19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMs
ICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgJHtjYW1lbENhc2VkQXR0cmlidXRlTmFtZX07XG4iOworfQorCitwcmlu
dCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMIDw8ICJFT0YiOworCisg
ICAgLy8gRm9yIGVhY2ggQ1NTIHByb3BlcnR5IHByb3BlcnR5IHRoYXQgaXMgYSBzdXBwb3J0ZWQg
Q1NTIHByb3BlcnR5IGFuZCB0aGF0IGJlZ2lucworICAgIC8vIHdpdGggdGhlIHN0cmluZyAtd2Vi
a2l0LSwgdGhlIGZvbGxvd2luZyBwYXJ0aWFsIGludGVyZmFjZSBhcHBsaWVzIHdoZXJlIHdlYmtp
dC1jYXNlZAorICAgIC8vIGF0dHJpYnV0ZSBpcyBvYnRhaW5lZCBieSBydW5uaW5nIHRoZSBDU1Mg
cHJvcGVydHkgdG8gSURMIGF0dHJpYnV0ZSBhbGdvcml0aG0gZm9yCisgICAgLy8gcHJvcGVydHks
IHdpdGggdGhlIGxvd2VyY2FzZSBmaXJzdCBmbGFnIHNldC4KKyAgICAvLyBFeGFtcGxlOiAtd2Vi
a2l0LXRyYW5zZm9ybSAtPiBlbGVtZW50LnN0eWxlLndlYmtpdFRyYW5zZm9ybQorICAgIC8vIFtD
RVJlYWN0aW9uc10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgX3dlYmtpdF9jYXNlZF9hdHRyaWJ1dGU7CitFT0YKKworZm9yZWFjaCBteSAkbmFtZU9yQWxp
YXMgKGdyZXAgeyAkXyA9fiAvXlwtd2Via2l0XC0vIH0gQG5hbWVzQW5kQWxpYXNlcykgeworICAg
IG15ICR3ZWJraXRDYXNlZEF0dHJpYnV0ZU5hbWUgPSBjc3NQcm9wZXJ0eVRvSURMQXR0cmlidXRl
KCRuYW1lT3JBbGlhcywgMSwgMCk7CisgICAgbXkgJG5hbWUgPSAkbmFtZXNBbmRBbGlhc2VzVG9O
YW1leyRuYW1lT3JBbGlhc307CisgICAgbXkgJHByb3BlcnR5SWQgPSAkbmFtZVRvSWR7JG5hbWVz
QW5kQWxpYXNlc1RvTmFtZXskbmFtZX19OworICAgIAorICAgIG15IEBleHRlbmRlZEF0dHJpYnV0
ZVZhbHVlcyA9ICgiQ1NTUHJvcGVydHk9JHtwcm9wZXJ0eUlkfSIpOworICAgIHB1c2goQGV4dGVu
ZGVkQXR0cmlidXRlVmFsdWVzLCAiRW5hYmxlZEJ5U2V0dGluZz0ke3NldHRpbmdzRmxhZ3N7JG5h
bWV9fSIpIGlmICRzZXR0aW5nc0ZsYWdzeyRuYW1lfTsKKyAgICBwdXNoKEBleHRlbmRlZEF0dHJp
YnV0ZVZhbHVlcywgIkVuYWJsZWRBdFJ1bnRpbWU9JHtydW50aW1lRmxhZ3N7JG5hbWV9fSIpIGlm
ICRydW50aW1lRmxhZ3N7JG5hbWV9OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZXMgPSBqb2lu
KCIsICIsIEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcyk7CisKKyAgICBwcmludCBDU1NfU1RZTEVf
REVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVhY3Rpb25zLCAke2V4dGVu
ZGVkQXR0cmlidXRlc31dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nICR7d2Via2l0Q2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiI7Cit9CisKK3ByaW50IENTU19T
VFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgPDwgIkVPRiI7CisKKyAgICAvLyBG
b3IgZWFjaCBDU1MgcHJvcGVydHkgcHJvcGVydHkgdGhhdCBpcyBhIHN1cHBvcnRlZCBDU1MgcHJv
cGVydHksIGV4Y2VwdCBmb3IKKyAgICAvLyBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBubyAiLSIgKFUr
MDAyRCkgaW4gdGhlIHByb3BlcnR5IG5hbWUsIHRoZSBmb2xsb3dpbmcgcGFydGlhbAorICAgIC8v
IGludGVyZmFjZSBhcHBsaWVzIHdoZXJlIGRhc2hlZCBhdHRyaWJ1dGUgaXMgcHJvcGVydHkuCisg
ICAgLy8gRXhhbXBsZTogZm9udC1zaXplIC0+IGVsZW1lbnQuc3R5bGVbJ2ZvbnQtc2l6ZSddCisg
ICAgLy8gRXhhbXBsZTogLXdlYmtpdC10cmFuc2Zvcm0gLT4gZWxlbWVudC5zdHlsZS5bJy13ZWJr
aXQtdHJhbnNmb3JtJ10KKyAgICAvLyBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVs
bFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIF9kYXNoZWRfYXR0cmlidXRlOworRU9GCitmb3Jl
YWNoIG15ICRuYW1lT3JBbGlhcyAoZ3JlcCB7ICRfID1+IC9cLS8gfSBAbmFtZXNBbmRBbGlhc2Vz
KSB7CisgICAgbXkgJGRhc2hlZEF0dHJpYnV0ZU5hbWUgPSAkbmFtZU9yQWxpYXM7CisgICAgbXkg
JG5hbWUgPSAkbmFtZXNBbmRBbGlhc2VzVG9OYW1leyRuYW1lT3JBbGlhc307CisgICAgbXkgJHBy
b3BlcnR5SWQgPSAkbmFtZVRvSWR7JG5hbWVzQW5kQWxpYXNlc1RvTmFtZXskbmFtZX19OworICAg
IAorICAgIG15IEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcyA9ICgiQ1NTUHJvcGVydHk9JHtwcm9w
ZXJ0eUlkfSIpOworICAgIHB1c2goQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzLCAiRW5hYmxlZEJ5
U2V0dGluZz0ke3NldHRpbmdzRmxhZ3N7JG5hbWV9fSIpIGlmICRzZXR0aW5nc0ZsYWdzeyRuYW1l
fTsKKyAgICBwdXNoKEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcywgIkVuYWJsZWRBdFJ1bnRpbWU9
JHtydW50aW1lRmxhZ3N7JG5hbWV9fSIpIGlmICRydW50aW1lRmxhZ3N7JG5hbWV9OworICAgIG15
ICRleHRlbmRlZEF0dHJpYnV0ZXMgPSBqb2luKCIsICIsIEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVl
cyk7CisKKyAgICBwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURM
ICIgICAgW0NFUmVhY3Rpb25zLCAke2V4dGVuZGVkQXR0cmlidXRlc31dIGF0dHJpYnV0ZSBbTGVn
YWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nICR7ZGFzaGVkQXR0cmlidXRlTmFtZX07
XG4iOworfQorCisjIEV2ZXJ5dGhpbmcgYmVsb3cgaGVyZSBpcyBub24tc3RhbmRhcmQuCisKK3By
aW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgPDwgIkVPRiI7CisK
KyAgICAvLyBOb24tc3RhbmRhcmQuIFNwZWNpYWwgY2FzZSBwcm9wZXJ0aWVzIHN0YXJ0aW5nIHdp
dGggLWVwdWItIGxpa2UgaXMgZG9uZSBmb3IKKyAgICAvLyAtd2Via2l0LSwgd2hlcmUgYXR0cmli
dXRlIGlzIG9idGFpbmVkIGJ5IHJ1bm5pbmcgdGhlIENTUyBwcm9wZXJ0eSB0byBJREwgYXR0cmli
dXRlCisgICAgLy8gYWxnb3JpdGhtIGZvciBwcm9wZXJ0eSwgd2l0aCB0aGUgbG93ZXJjYXNlIGZp
cnN0IGZsYWcgc2V0LgorICAgIC8vIEV4YW1wbGU6IC1lcHViLWNhcHRpb24tc2lkZSAtPiBlbGVt
ZW50LnN0eWxlLmVwdWJDYXB0aW9uU2lkZQorRU9GCitmb3JlYWNoIG15ICRuYW1lT3JBbGlhcyAo
Z3JlcCB7ICRfID1+IC9eXC1lcHViXC0vIH0gQG5hbWVzQW5kQWxpYXNlcykgeworICAgIG15ICRl
cHViQ2FzZWRBdHRyaWJ1dGVOYW1lID0gY3NzUHJvcGVydHlUb0lETEF0dHJpYnV0ZSgkbmFtZU9y
QWxpYXMsIDEsIDApOworICAgIG15ICRuYW1lID0gJG5hbWVzQW5kQWxpYXNlc1RvTmFtZXskbmFt
ZU9yQWxpYXN9OworICAgIG15ICRwcm9wZXJ0eUlkID0gJG5hbWVUb0lkeyRuYW1lc0FuZEFsaWFz
ZXNUb05hbWV7JG5hbWV9fTsKKyAgICAKKyAgICBteSBAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMg
PSAoIkNTU1Byb3BlcnR5PSR7cHJvcGVydHlJZH0iKTsKKyAgICBwdXNoKEBleHRlbmRlZEF0dHJp
YnV0ZVZhbHVlcywgIkVuYWJsZWRCeVNldHRpbmc9JHtzZXR0aW5nc0ZsYWdzeyRuYW1lfX0iKSBp
ZiAkc2V0dGluZ3NGbGFnc3skbmFtZX07CisgICAgcHVzaChAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1
ZXMsICJFbmFibGVkQXRSdW50aW1lPSR7cnVudGltZUZsYWdzeyRuYW1lfX0iKSBpZiAkcnVudGlt
ZUZsYWdzeyRuYW1lfTsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVzID0gam9pbigiLCAiLCBA
ZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMpOworCisgICAgcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFU
SU9OX1BST1BFUlRZX05BTUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgJHtleHRlbmRlZEF0dHJp
YnV0ZXN9XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAk
e2VwdWJDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIjsKK30KKworcHJpbnQgQ1NTX1NUWUxFX0RFQ0xB
UkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsKKworICAgIC8vIE5vbi1zdGFuZGFy
ZC4gQWRkIHNwZWNpYWwgY2FzZXMgZm9yIGFsbCBwcm9wZXJ0aWVzIG5vdCBzdGFydGluZyB3aXRo
IC13ZWJraXQtIG9yIC1lcHViLQorICAgIC8vIHRoYXQgcHV0cyBhbiBuZXcgcHJlZml4IG9mIGNz
cywgQ3NzLCBwb3MsIFBvcywgcGl4ZWwgYW5kIFBpeGVsIG9uIGVhY2guCisgICAgLy8gRXhhbXBs
ZSB0b3AgLT4gZWxlbWVudC5zdHlsZS5wb3NUb3AKKyAgICAvLyBFeGFtcGxlIHRvcCAtPiBlbGVt
ZW50LnN0eWxlLlBpeGVsVG9wCitFT0YKK2ZvcmVhY2ggbXkgJG5hbWVPckFsaWFzIChncmVwIHsg
JF8gIX4gL15cLXdlYmtpdFwtfF5cLWVwdWJcLS8gfSBAbmFtZXNBbmRBbGlhc2VzKSB7CisgICAg
bXkgJGNhbWVsQ2FzZWRBdHRyaWJ1dGVOYW1lID0gY3NzUHJvcGVydHlUb0lETEF0dHJpYnV0ZSgk
bmFtZU9yQWxpYXMsIDAsIDEpOworICAgIG15ICRuYW1lID0gJG5hbWVzQW5kQWxpYXNlc1RvTmFt
ZXskbmFtZU9yQWxpYXN9OworICAgIG15ICRwcm9wZXJ0eUlkID0gJG5hbWVUb0lkeyRuYW1lc0Fu
ZEFsaWFzZXNUb05hbWV7JG5hbWV9fTsKKyAgICAKKyAgICBteSBAZXh0ZW5kZWRBdHRyaWJ1dGVW
YWx1ZXMgPSAoIkNTU1Byb3BlcnR5PSR7cHJvcGVydHlJZH0iKTsKKyAgICBwdXNoKEBleHRlbmRl
ZEF0dHJpYnV0ZVZhbHVlcywgIkVuYWJsZWRCeVNldHRpbmc9JHtzZXR0aW5nc0ZsYWdzeyRuYW1l
fX0iKSBpZiAkc2V0dGluZ3NGbGFnc3skbmFtZX07CisgICAgcHVzaChAZXh0ZW5kZWRBdHRyaWJ1
dGVWYWx1ZXMsICJFbmFibGVkQXRSdW50aW1lPSR7cnVudGltZUZsYWdzeyRuYW1lfX0iKSBpZiAk
cnVudGltZUZsYWdzeyRuYW1lfTsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVzID0gam9pbigi
LCAiLCBAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMpOworCisgICAgcHJpbnQgQ1NTX1NUWUxFX0RF
Q0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgJHtleHRlbmRl
ZEF0dHJpYnV0ZXN9XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyBjc3Mke2NhbWVsQ2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiIgdW5sZXNzICRjYW1lbENhc2Vk
QXR0cmlidXRlTmFtZSBlcSAiRmxvYXQiOworICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElP
Tl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1
dGVzfV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgQ3Nz
JHtjYW1lbENhc2VkQXR0cmlidXRlTmFtZX07XG4iIHVubGVzcyAkY2FtZWxDYXNlZEF0dHJpYnV0
ZU5hbWUgZXEgIkZsb2F0IjsKKyAgICBwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVS
VFlfTkFNRVNfSURMICIgICAgW0NFUmVhY3Rpb25zLCAke2V4dGVuZGVkQXR0cmlidXRlc31dIGF0
dHJpYnV0ZSAoZG91YmxlIG9yIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcp
IHBvcyR7Y2FtZWxDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIjsKKyAgICBwcmludCBDU1NfU1RZTEVf
REVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVhY3Rpb25zLCAke2V4dGVu
ZGVkQXR0cmlidXRlc31dIGF0dHJpYnV0ZSAoZG91YmxlIG9yIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcpIFBvcyR7Y2FtZWxDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIjsKKyAg
ICBwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMICIgICAgW0NF
UmVhY3Rpb25zLCAke2V4dGVuZGVkQXR0cmlidXRlc31dIGF0dHJpYnV0ZSAoZG91YmxlIG9yIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcpIHBpeGVsJHtjYW1lbENhc2VkQXR0
cmlidXRlTmFtZX07XG4iOworICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJU
WV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0
cmlidXRlIChkb3VibGUgb3IgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZykg
UGl4ZWwke2NhbWVsQ2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiI7Cit9CisKK3ByaW50IENTU19TVFlM
RV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgPDwgIkVPRiI7Cit9OworRU9GCisKK2Ns
b3NlIENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREw7CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1lbnVtZXJhdGUtcHJvcGVydGllcy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLWVudW1lcmF0ZS1wcm9wZXJ0aWVzLmh0
bWwJKHJldmlzaW9uIDI2ODQ5NCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLWVudW1l
cmF0ZS1wcm9wZXJ0aWVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDMzICsyMyw2IEBACiAg
ICAgICAgIHNob3VsZEJlRmFsc2UoIidib2d1cy1yYW5kb20tU3RyaW5nJyBpbiBkb2N1bWVudC5i
b2R5LnN0eWxlIik7CiAgICAgICAgIHNob3VsZEJlVHJ1ZSgiJ2Nzc1RleHQnIGluIGRvY3VtZW50
LmJvZHkuc3R5bGUiKTsKICAgICAgICAgc2hvdWxkQmVUcnVlKCInZ2V0UHJvcGVydHlDU1NWYWx1
ZScgaW4gZG9jdW1lbnQuYm9keS5zdHlsZSIpOwotCi0gICAgICAgIC8vIFRlc3QgQ1NTIHByb3Bl
cnR5IG9yZGVyLgotICAgICAgICB2YXIgc3RhcnRlZDsKLSAgICAgICAgdmFyIGNzc1Byb3BlcnR5
Q291bnQgPSAwOwotICAgICAgICB2YXIgcHJldmlvdXM7Ci0gICAgICAgIHZhciBzZWVuRmlsdGVy
OwotICAgICAgICBmb3IgKHZhciBwIGluIGRvY3VtZW50LmJvZHkuc3R5bGUpIHsKLSAgICAgICAg
ICAgIGlmIChwID09PSAiYWxpZ25tZW50QmFzZWxpbmUiKQotICAgICAgICAgICAgICAgIHN0YXJ0
ZWQgPSB0cnVlOwotICAgICAgICAgICAgaWYgKCFzdGFydGVkKQotICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICAgICAgaWYgKHAgPT09ICJmaWx0ZXIiKQotICAgICAgICAgICAgICAg
IHNlZW5GaWx0ZXIgPSB0cnVlOwotICAgICAgICAgICAgaWYgKHByZXZpb3VzICYmIHByZXZpb3Vz
ID49IHApIHsKLSAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJJbnZhbGlkIENTUy1tYXBwZWQg
cHJvcGVydHkgb3JkZXI6ICciICsgcCArICInIGFmdGVyICciICsgcHJldmlvdXMgKyAiJyIpOwot
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCsr
Y3NzUHJvcGVydHlDb3VudCA8PSA0MDApCi0gICAgICAgICAgICAgICAgcHJldmlvdXMgPSBwOwot
ICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKHNlZW5GaWx0ZXIpCi0gICAg
ICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSBDU1MgcHJvcGVydHkgb3JkZXIgaXMgY29y
cmVjdCIpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiVGhlICdmaWx0ZXInIHByb3BlcnR5IHdhcyBub3QgZW51bWVyYXRlZCIpOwotICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9CiAgICAgPC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJh
dGlvbi9jc3NzdHlsZWRlY2xhcmF0aW9uLXByb3BlcnRpZXMtZGVzY3JpcHRvci5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3Nzc3R5
bGVkZWNsYXJhdGlvbi1wcm9wZXJ0aWVzLWRlc2NyaXB0b3IuaHRtbAkocmV2aXNpb24gMjY4NDk0
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3NzdHlsZWRl
Y2xhcmF0aW9uLXByb3BlcnRpZXMtZGVzY3JpcHRvci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01
LDggKzUsOSBAQAogICAgIDxzY3JpcHQ+CiAgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3Rz
IHRoZSBkZXNjcmlwdG9yIG9mIENTU1N0eWxlRGVjbGFyYXRpb24gcHJvcGVydGllcy4iKTsKIAot
ICAgICAgICB2YXIgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
ZG9jdW1lbnQuYm9keS5zdHlsZSwgJ2NvbG9yJyk7Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgiZGVz
Y3JpcHRvclsnd3JpdGFibGUnXSIpOworICAgICAgICB2YXIgZGVzY3JpcHRvciA9IE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZG9jdW1lbnQuYm9keS5zdHlsZS5fX3Byb3RvX18sICdj
b2xvcicpOworICAgICAgICBzaG91bGRCZVR5cGUoImRlc2NyaXB0b3JbJ2dldCddIiwgIkZ1bmN0
aW9uIik7CisgICAgICAgIHNob3VsZEJlVHlwZSgiZGVzY3JpcHRvclsnc2V0J10iLCAiRnVuY3Rp
b24iKTsKICAgICAgICAgc2hvdWxkQmVUcnVlKCJkZXNjcmlwdG9yWydlbnVtZXJhYmxlJ10iKTsK
ICAgICAgICAgc2hvdWxkQmVUcnVlKCJkZXNjcmlwdG9yWydjb25maWd1cmFibGUnXSIpOwogICAg
IDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL3B1dC1vdmVycmlkZS1zaG91bGQt
bm90LXVzZS1pYy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9wdXQtb3Zl
cnJpZGUtc2hvdWxkLW5vdC11c2UtaWMuaHRtbAkocmV2aXNpb24gMjY4NDk0KQorKysgTGF5b3V0
VGVzdHMvanMvZG9tL3B1dC1vdmVycmlkZS1zaG91bGQtbm90LXVzZS1pYy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC04LDEwICs4LDEwIEBACiA8c2NyaXB0PgogICAgIHRlc3QoZnVuY3Rpb24oKSB7
CiAgICAgICAgIGZ1bmN0aW9uIHRyYW5zaXRpb25lZCgpIHsKLSAgICAgICAgICAgIHN0eWxlID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpLnN0eWxlOworICAgICAgICAgICAgZGF0YXNldCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKS5kYXRhc2V0OwogICAgICAgICAgICAgZm9yKHZh
ciBpID0gMDsgaSA8IDIwOyBpKyspCi0gICAgICAgICAgICAgICAgc3R5bGVbJ3AnK2ldID0gaTsK
LSAgICAgICAgICAgIHJldHVybiBzdHlsZTsKKyAgICAgICAgICAgICAgICBkYXRhc2V0WydwJytp
XSA9IGk7CisgICAgICAgICAgICByZXR1cm4gZGF0YXNldDsKICAgICAgICAgfQogCiAgICAgICAg
IGZ1bmN0aW9uIHB1dHRlcihvKSB7CkluZGV4OiBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFu
c2l0aW9ucy1wYXJzaW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNpdGlv
bnMvdHJhbnNpdGlvbnMtcGFyc2luZy5odG1sCShyZXZpc2lvbiAyNjg0OTQpCisrKyBMYXlvdXRU
ZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9ucy1wYXJzaW5nLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDggKzMwLDYgQEAgc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJhbnNpdGlvblByb3Bl
cgogc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUud2Via2l0VHJhbnNpdGlvblByb3BlcnR5IiwgIidh
bGwnIik7CiAKIHN0eWxlLnRyYW5zaXRpb25Qcm9wZXJ0eSA9ICJub25lIjsKLXNob3VsZE5vdEJl
KCJPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZigndHJhbnNpdGlvblByb3BlcnR5JykiLCAiLTEi
KTsKLXNob3VsZEJlKCJPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZignd2Via2l0VHJhbnNpdGlv
blByb3BlcnR5JykiLCAiLTEiKTsKIHNob3VsZEJlKCJzdHlsZS50cmFuc2l0aW9uUHJvcGVydHki
LCAiJ25vbmUnIik7CiBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uUHJvcGVydHki
LCAiJ25vbmUnIik7CiBzaG91bGRCZSgic3R5bGUud2Via2l0VHJhbnNpdGlvblByb3BlcnR5Iiwg
Iidub25lJyIpOwpAQCAtMTc2LDggKzE3NCw2IEBAIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLnRy
YW5zaXRpb25EdXJhdGkKIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLndlYmtpdFRyYW5zaXRpb25E
dXJhdGlvbiIsICInMHMnIik7CiAKIHN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9ICIwcyI7Ci1z
aG91bGROb3RCZSgiT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3RyYW5zaXRpb25EdXJhdGlv
bicpIiwgIi0xIik7Ci1zaG91bGRCZSgiT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3dlYmtp
dFRyYW5zaXRpb25EdXJhdGlvbicpIiwgIi0xIik7CiBzaG91bGRCZSgic3R5bGUudHJhbnNpdGlv
bkR1cmF0aW9uIiwgIicwcyciKTsKIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25E
dXJhdGlvbiIsICInMHMnIik7CiBzaG91bGRCZSgic3R5bGUud2Via2l0VHJhbnNpdGlvbkR1cmF0
aW9uIiwgIicwcyciKTsKQEAgLTI1Niw4ICsyNTIsNiBAQCBzaG91bGRCZSgiY29tcHV0ZWRTdHls
ZS50cmFuc2l0aW9uVGltaW5nCiBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS53ZWJraXRUcmFuc2l0
aW9uVGltaW5nRnVuY3Rpb24iLCAiJ2Vhc2UnIik7CiAKIHN0eWxlLnRyYW5zaXRpb25UaW1pbmdG
dW5jdGlvbiA9ICJsaW5lYXIiOwotc2hvdWxkTm90QmUoIk9iamVjdC5rZXlzKHN0eWxlKS5pbmRl
eE9mKCd0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24nKSIsICItMSIpOwotc2hvdWxkQmUoIk9iamVj
dC5rZXlzKHN0eWxlKS5pbmRleE9mKCd3ZWJraXRUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb24nKSIs
ICItMSIpOwogc2hvdWxkQmUoInN0eWxlLnRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiIsICInbGlu
ZWFyJyIpOwogc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9u
IiwgIidsaW5lYXInIik7CiBzaG91bGRCZSgic3R5bGUud2Via2l0VHJhbnNpdGlvblRpbWluZ0Z1
bmN0aW9uIiwgIidsaW5lYXInIik7CkBAIC00ODUsOCArNDc5LDYgQEAgc2hvdWxkQmUoImNvbXB1
dGVkU3R5bGUudHJhbnNpdGlvbkRlbGF5Igogc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUud2Via2l0
VHJhbnNpdGlvbkRlbGF5IiwgIicwcyciKTsKIAogc3R5bGUudHJhbnNpdGlvbkRlbGF5ID0gIjBz
IjsKLXNob3VsZE5vdEJlKCJPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZigndHJhbnNpdGlvbkRl
bGF5JykiLCAiLTEiKTsKLXNob3VsZEJlKCJPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZignd2Vi
a2l0VHJhbnNpdGlvbkRlbGF5JykiLCAiLTEiKTsKIHNob3VsZEJlKCJzdHlsZS50cmFuc2l0aW9u
RGVsYXkiLCAiJzBzJyIpOwogc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJhbnNpdGlvbkRlbGF5
IiwgIicwcyciKTsKIHNob3VsZEJlKCJzdHlsZS53ZWJraXRUcmFuc2l0aW9uRGVsYXkiLCAiJzBz
JyIpOwpAQCAtNTY1LDggKzU1Nyw2IEBAIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLnRyYW5zaXRp
b24iLCAiJ2EKIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLndlYmtpdFRyYW5zaXRpb24iLCAiJ2Fs
bCAwcyBlYXNlIDBzJyIpOwogCiBzdHlsZS50cmFuc2l0aW9uID0gIm5vbmUiOwotc2hvdWxkTm90
QmUoIk9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd0cmFuc2l0aW9uJykiLCAiLTEiKTsKLXNo
b3VsZEJlKCJPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZignd2Via2l0VHJhbnNpdGlvbicpIiwg
Ii0xIik7CiBzaG91bGRCZSgic3R5bGUudHJhbnNpdGlvbiIsICInbm9uZSciKTsKIHNob3VsZEJl
KCJjb21wdXRlZFN0eWxlLnRyYW5zaXRpb24iLCAiJ25vbmUgMHMgZWFzZSAwcyciKTsKIHNob3Vs
ZEJlKCJzdHlsZS53ZWJraXRUcmFuc2l0aW9uIiwgIidub25lJyIpOwo=
</data>
<flag name="commit-queue"
          id="427647"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411454</attachid>
            <date>2020-10-15 10:12:37 -0700</date>
            <delta_ts>2020-10-15 12:56:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217623-20201015101236.patch</filename>
            <type>text/plain</type>
            <size>42286</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2ODUwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDIwLTEwLTEzICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIGJy
ZWFrcyBKUyBzcGVjIChwcm9wZXJ0aWVzIG5vdCBzaG93aW5nIHVwIGluIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eU5hbWVzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE3NjIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW1dJUF0KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG06CisgICAgICAgIChHZW5lcmF0ZUF0dHJpYnV0ZUdldHRlckJvZHlEZWZpbml0aW9uKToK
KyAgICAgICAgKEdlbmVyYXRlQXR0cmlidXRlU2V0dGVyQm9keURlZmluaXRpb24pOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uOgorICAgICAgICAqIGNzcy9D
U1NTdHlsZURlY2xhcmF0aW9uLmlkbDoKKyAgICAgICAgKiBjc3MvbWFrZXByb3AucGw6CisgICAg
ICAgIChjc3NQcm9wZXJ0eVRvSURMQXR0cmlidXRlKToKKwogMjAyMC0xMC0xNCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFZlY3Rvcml6ZSBkb3dubWl4aW5nIGlu
IEF1ZGlvQnVzOjpjcmVhdGVCeU1peGluZ1RvTW9ubygpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAkocmV2aXNpb24gMjY4NTA1KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTE4NzksNyArMTg3OSw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09V
UkNFUyAke1dlYkNvcmVfREUKIAogIyBHZW5lcmF0ZSBDU1MgcHJvcGVydHkgbmFtZXMKIGFkZF9j
dXN0b21fY29tbWFuZCgKLSAgICBPVVRQVVQgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9
L0NTU1Byb3BlcnRpZXMuanNvbiAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJv
cGVydHlOYW1lcy5oICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5h
bWVzLmNwcCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5n
cGVyZiAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVCdWlsZGVyR2VuZXJhdGVk
LmNwcCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVQcm9wZXJ0eVNob3J0aGFu
ZEZ1bmN0aW9ucy5oICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZVByb3BlcnR5
U2hvcnRoYW5kRnVuY3Rpb25zLmNwcAorICAgIE9VVFBVVCAke1dlYkNvcmVfREVSSVZFRF9TT1VS
Q0VTX0RJUn0vQ1NTUHJvcGVydGllcy5qc29uICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElS
fS9DU1NQcm9wZXJ0eU5hbWVzLmggJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1By
b3BlcnR5TmFtZXMuY3BwICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0
eU5hbWVzLmdwZXJmICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZUJ1aWxkZXJH
ZW5lcmF0ZWQuY3BwICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZVByb3BlcnR5
U2hvcnRoYW5kRnVuY3Rpb25zLmggJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0eWxl
UHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNf
RElSfS9DU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsCiAgICAgTUFJTl9ERVBF
TkRFTkNZICR7V0VCQ09SRV9ESVJ9L2Nzcy9tYWtlcHJvcC5wbAogICAgIERFUEVORFMgJHtXZWJD
b3JlX0NTU19QUk9QRVJUWV9OQU1FU30KICAgICBXT1JLSU5HX0RJUkVDVE9SWSAke1dlYkNvcmVf
REVSSVZFRF9TT1VSQ0VTX0RJUn0KQEAgLTE4ODksNiArMTg4OSw3IEBAIGFkZF9jdXN0b21fY29t
bWFuZCgKIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke1dlYkNvcmVfREVSSVZFRF9TT1VS
Q0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5jcHApCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJD
RVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0eWxlQnVpbGRlckdlbmVyYXRlZC5j
cHApCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNF
U19ESVJ9L1N0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwKQorbGlzdChBUFBFTkQg
V2ViQ29yZV9JRExfRklMRVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1N0eWxl
RGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5pZGwpCiBBRERfU09VUkNFX1dFQkNPUkVfREVSSVZF
RF9ERVBFTkRFTkNJRVMoJHtXRUJDT1JFX0RJUn0vY3NzL0NTU1BhcnNlci5jcHAgQ1NTVmFsdWVL
ZXl3b3Jkcy5oKQogCiAjIEdlbmVyYXRlIENTUyB2YWx1ZSBrZXl3b3JkcwpJbmRleDogU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHJldmlzaW9u
IDI2ODUwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDYgKzMsNyBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9CeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5QnVpbHRpbnMuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTUHJvcGVydHlOYW1lcy5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1Byb3BlcnR5TmFt
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTU3R5
bGVEZWNsYXJhdGlvbitQcm9wZXJ0eU5hbWVzLmlkbAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTVmFsdWVLZXl3b3Jkcy5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1ZhbHVlS2V5d29yZHMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ29sb3JEYXRhLmNwcApAQCAt
MjkwLDYgKzI5MSw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWIK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTUnVsZS5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU1J1bGVM
aXN0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlND
U1NSdWxlTGlzdC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0NTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5jcHAKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbitQcm9w
ZXJ0eU5hbWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbi5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU1N0eWxlUnVsZS5jcHAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjY4NTA1KQorKysgU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTMyNyw2ICsxMzI3
LDcgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkveG1sL1hQYXRoUmVzdWx0
LmlkbCBcCiAgICAgJChXZWJDb3JlKS94bWwvWFNMVFByb2Nlc3Nvci5pZGwgXAogICAgIEludGVy
bmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRsIFwKKyAgICBDU1NTdHlsZURlY2xhcmF0aW9uK1Byb3Bl
cnR5TmFtZXMuaWRsIFwKICMKIAogIyAtLS0tLS0tLQpAQCAtMTQxOCw2ICsxNDE5LDcgQEAgYWxs
IDogXAogICAgIFN0eWxlQnVpbGRlckdlbmVyYXRlZC5jcHAgXAogICAgIFN0eWxlUHJvcGVydHlT
aG9ydGhhbmRGdW5jdGlvbnMuY3BwIFwKICAgICBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rp
b25zLmggXAorICAgIENTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5pZGwgXAogICAg
IFVzZXJBZ2VudFN0eWxlU2hlZXRzLmggXAogICAgIFdlYktpdEZvbnRGYW1pbHlOYW1lcy5jcHAg
XAogICAgIFdlYktpdEZvbnRGYW1pbHlOYW1lcy5oIFwKQEAgLTE0NDUsNiArMTQ0Nyw3IEBAIENT
U19QUk9QRVJUWV9OQU1FX0ZJTEVTID0gXAogICAgIFN0eWxlQnVpbGRlckdlbmVyYXRlZC5jcHAg
XAogICAgIFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwIFwKICAgICBTdHlsZVBy
b3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmggXAorICAgIENTU1N0eWxlRGVjbGFyYXRpb24rUHJv
cGVydHlOYW1lcy5pZGwgXAogIwogQ1NTX1BST1BFUlRZX05BTUVfRklMRVNfUEFUVEVSTlMgPSAk
KHN1YnN0IC4sJSwkKENTU19QUk9QRVJUWV9OQU1FX0ZJTEVTKSkKIApJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlz
aW9uIDI2ODUwNSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xMTg3LDE1ICsxMTg3LDEyIEBAIHN1YiBHZW5l
cmF0ZUludm9rZU5hbWVkUHJvcGVydHlTZXR0ZXIKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRp
bmRlbnQgLiAiYXV0byBuYXRpdmVWYWx1ZSA9ICR7bmF0aXZlVmFsdWV9O1xuIik7CiAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gIlJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29w
ZSwgdHJ1ZSk7XG4iKTsKIAotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJib29s
IGlzUHJvcGVydHlTdXBwb3J0ZWQgPSB0cnVlO1xuIikgaWYgJG5hbWVkU2V0dGVyT3BlcmF0aW9u
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDYWxsTmFtZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVkUHJv
cGVydGllc307Ci0KICAgICBteSAkbmFtZWRTZXR0ZXJGdW5jdGlvbk5hbWUgPSAkbmFtZWRTZXR0
ZXJPcGVyYXRpb24tPm5hbWUgfHwgInNldE5hbWVkSXRlbSI7CiAgICAgbXkgJG5hdGl2ZVZhbHVl
UGFzc0V4cHJlc3Npb24gPSBQYXNzQXJndW1lbnRFeHByZXNzaW9uKCJuYXRpdmVWYWx1ZSIsICRh
cmd1bWVudCk7CiAKICAgICBteSBAYXJndW1lbnRzID0gKCk7CiAgICAgcHVzaChAYXJndW1lbnRz
LCAicHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSIpOwogICAgIHB1c2goQGFyZ3Vt
ZW50cywgJG5hdGl2ZVZhbHVlUGFzc0V4cHJlc3Npb24pOwotICAgIHB1c2goQGFyZ3VtZW50cywg
ImlzUHJvcGVydHlTdXBwb3J0ZWQiKSBpZiAkbmFtZWRTZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0NhbGxOYW1lZFNldHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9wZXJ0aWVzfTsK
IAogICAgIG15ICRmdW5jdGlvblN0cmluZyA9ICJ0aGlzT2JqZWN0LT53cmFwcGVkKCkuJHtuYW1l
ZFNldHRlckZ1bmN0aW9uTmFtZX0oIiAuIGpvaW4oIiwgIiwgQGFyZ3VtZW50cykgLiAiKSI7CiAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gImludm9rZUZ1bmN0b3JQcm9wYWdhdGlu
Z0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBb
Jl0geyByZXR1cm4gJHtmdW5jdGlvblN0cmluZ307IH0pO1xuIik7CkBAIC0xMjUwLDEwICsxMjQ3
LDYgQEAgc3ViIEdlbmVyYXRlUHV0CiAgICAgICAgIH0KIAogICAgICAgICBHZW5lcmF0ZUludm9r
ZU5hbWVkUHJvcGVydHlTZXR0ZXIoJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIg
ICAgICAgICIsICRpbnRlcmZhY2UsICRuYW1lZFNldHRlck9wZXJhdGlvbiwgInZhbHVlIik7Ci0g
ICAgICAgIGlmICgkbmFtZWRTZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e0Nh
bGxOYW1lZFNldHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9wZXJ0aWVzfSkgewotICAgICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgICAgIGlmICghaXNQ
cm9wZXJ0eVN1cHBvcnRlZClcbiIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAk
YWRkaXRpb25hbEluZGVudCAuICIgICAgICAgICAgICByZXR1cm4gSlNPYmplY3Q6OnB1dCh0aGlz
T2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9w
ZXJ0eVNsb3QpO1xuIik7Ci0gICAgICAgIH0KICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAk
YWRkaXRpb25hbEluZGVudCAuICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAKICAgICAgICAg
aWYgKCEkbGVnYWN5T3ZlcnJpZGVCdWlsdGlucykgewpAQCAtMTI4Niw3ICsxMjc5LDcgQEAgc3Vi
IEdlbmVyYXRlUHV0QnlJbmRleAogICAgIG15ICRpbmRleGVkU2V0dGVyT3BlcmF0aW9uID0gR2V0
SW5kZXhlZFNldHRlck9wZXJhdGlvbigkaW50ZXJmYWNlKTsKICAgICAKICAgICBteSAkbGVnYWN5
T3ZlcnJpZGVCdWlsdGlucyA9ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0V4dGVuZGVkQXR0cmli
dXRlKCRpbnRlcmZhY2UsICJMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIik7Ci0gICAgbXkgJGVsbGlk
ZXNDYWxsc1RvQmFzZSA9ICgkbmFtZWRTZXR0ZXJPcGVyYXRpb24gJiYgJGxlZ2FjeU92ZXJyaWRl
QnVpbHRpbnMpICYmICEkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntQbHVnaW59ICYm
ICEkbmFtZWRTZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NhbGxOYW1lZFNl
dHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9wZXJ0aWVzfTsKKyAgICBteSAkZWxsaWRlc0NhbGxzVG9C
YXNlID0gKCRuYW1lZFNldHRlck9wZXJhdGlvbiAmJiAkbGVnYWN5T3ZlcnJpZGVCdWlsdGlucykg
JiYgISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e1BsdWdpbn07CiAgICAgCiAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiYm9vbCAke2NsYXNzTmFtZX06OnB1dEJ5SW5kZXgoSlNDZWxs
KiBjZWxsLCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgdW5zaWduZWQgaW5k
ZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wiIC4gKCEkZWxsaWRlc0NhbGxzVG9CYXNlID8gIiBzaG91
bGRUaHJvdyIgOiAiIikgLiAiKVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7
CkBAIC0xMzI4LDEwICsxMzIxLDYgQEAgc3ViIEdlbmVyYXRlUHV0QnlJbmRleAogICAgICAgICB9
CiAgICAgICAgIAogICAgICAgICBHZW5lcmF0ZUludm9rZU5hbWVkUHJvcGVydHlTZXR0ZXIoJG91
dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgIiwgJGludGVyZmFjZSwgJG5hbWVk
U2V0dGVyT3BlcmF0aW9uLCAidmFsdWUiKTsKLSAgICAgICAgaWYgKCRuYW1lZFNldHRlck9wZXJh
dGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q2FsbE5hbWVkU2V0dGVyT25seUZvclN1cHBvcnRl
ZFByb3BlcnRpZXN9KSB7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlv
bmFsSW5kZW50IC4gIiAgICBpZiAoIWlzUHJvcGVydHlTdXBwb3J0ZWQpXG4iKTsKLSAgICAgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGFkZGl0aW9uYWxJbmRlbnQgLiAiICAgICAgICByZXR1
cm4gSlNPYmplY3Q6OnB1dEJ5SW5kZXgoY2VsbCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgaW5kZXgs
IHZhbHVlLCBzaG91bGRUaHJvdyk7XG4iKTsKLSAgICAgICAgfQogICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50IC4gIiAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAg
ICAgICAKICAgICAgICAgaWYgKCEkbGVnYWN5T3ZlcnJpZGVCdWlsdGlucykgewpAQCAtMTQ3NSwx
MCArMTQ2NCw3IEBAIHN1YiBHZW5lcmF0ZURlZmluZU93blByb3BlcnR5CiAgICAgICAgICAgICAK
ICAgICAgICAgICAgICMgMi4yLjIuIEludm9rZSB0aGUgbmFtZWQgcHJvcGVydHkgc2V0dGVyIHdp
dGggUCBhbmQgRGVzYy5bW1ZhbHVlXV0uCiAgICAgICAgICAgICBHZW5lcmF0ZUludm9rZU5hbWVk
UHJvcGVydHlTZXR0ZXIoJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgICAg
ICIsICRpbnRlcmZhY2UsICRuYW1lZFNldHRlck9wZXJhdGlvbiwgInByb3BlcnR5RGVzY3JpcHRv
ci52YWx1ZSgpIik7Ci0gICAgICAgICAgICBpZiAoJG5hbWVkU2V0dGVyT3BlcmF0aW9uLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPntDYWxsTmFtZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVydGll
c30pIHsKLSAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5k
ZW50IC4gIiAgICBpZiAoIWlzUHJvcGVydHlTdXBwb3J0ZWQpXG4iKTsKLSAgICAgICAgICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50IC4gIiAgICAgICAgcmV0dXJu
IEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3Qs
IHByb3BlcnR5TmFtZSwgcHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7XG4iKTsKLSAg
ICAgICAgICAgIH0KKwogICAgICAgICAgICAgIyAyLjIuMy4gUmV0dXJuIHRydWUuCiAgICAgICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50IC4gIiAgICAgICAgcmV0
dXJuIHRydWU7XG4iKTsKICAgICAgICAgfQpAQCAtMTg1Myw3ICsxODM5LDcgQEAgc3ViIE1hbmds
ZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lCiAKICAgICAkbmFtZSA9fiBzLy0vX2Rhc2hfL2c7CiAK
LSAgICByZXR1cm4gJG5hbWU7CisgICAgcmV0dXJuICRuYW1lID1+IC9eXy8gPyAkbmFtZSA6ICdf
JyAuICRuYW1lOwogfQogCiBzdWIgR2V0QXR0cmlidXRlR2V0dGVyTmFtZQpAQCAtMTg2MSw5ICsx
ODQ3LDkgQEAgc3ViIEdldEF0dHJpYnV0ZUdldHRlck5hbWUKICAgICBteSAoJGludGVyZmFjZSwg
JGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSkgPSBAXzsKIAogICAgIHJldHVybiBHZXRKU0J1aWx0aW5G
dW5jdGlvbk5hbWUoJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSkgaWYgSXNKU0J1aWx0aW4oJGludGVy
ZmFjZSwgJGF0dHJpYnV0ZSk7Ci0gICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0
KCRjbGFzc05hbWUpIC4gIkNvbnN0cnVjdG9yIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0
KE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpKSBpZiAkYXR0
cmlidXRlLT5pc1N0YXRpYzsKLSAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3Qo
JGNsYXNzTmFtZSkgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdChNYW5nbGVBdHRyaWJ1dGVP
ckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSkgLiAiQ29uc3RydWN0b3IiIGlmICRjb2Rl
R2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVHlwZSgkYXR0cmlidXRlLT50eXBlKTsKLSAgICByZXR1
cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAkY29kZUdlbmVyYXRv
ci0+V0tfdWNmaXJzdChNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5u
YW1lKSk7CisgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUp
IC4gIkNvbnN0cnVjdG9yIiAuIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1
dGUtPm5hbWUpIGlmICRhdHRyaWJ1dGUtPmlzU3RhdGljOworICAgIHJldHVybiAkY29kZUdlbmVy
YXRvci0+V0tfbGNmaXJzdCgkY2xhc3NOYW1lKSAuIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25O
YW1lKCRhdHRyaWJ1dGUtPm5hbWUpIC4gIkNvbnN0cnVjdG9yIiBpZiAkY29kZUdlbmVyYXRvci0+
SXNDb25zdHJ1Y3RvclR5cGUoJGF0dHJpYnV0ZS0+dHlwZSk7CisgICAgcmV0dXJuICRjb2RlR2Vu
ZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUpIC4gTWFuZ2xlQXR0cmlidXRlT3JGdW5jdGlv
bk5hbWUoJGF0dHJpYnV0ZS0+bmFtZSk7CiB9CiAKIHN1YiBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1l
CkBAIC0xODcxLDkgKzE4NTcsOSBAQCBzdWIgR2V0QXR0cmlidXRlU2V0dGVyTmFtZQogICAgIG15
ICgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKSA9IEBfOwogCiAgICAgcmV0dXJu
ICJzZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoR2V0SlNCdWlsdGluRnVuY3Rpb25O
YW1lKCRjbGFzc05hbWUsICRhdHRyaWJ1dGUpKSBpZiBJc0pTQnVpbHRpbigkaW50ZXJmYWNlLCAk
YXR0cmlidXRlKTsKLSAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJz
dCgkY2xhc3NOYW1lKSAuICJDb25zdHJ1Y3RvciIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJz
dChNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSkgaWYgJGF0
dHJpYnV0ZS0+aXNTdGF0aWM7Ci0gICAgcmV0dXJuICJzZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldL
X3VjZmlyc3QoJGNsYXNzTmFtZSkgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdChNYW5nbGVB
dHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSkgLiAiQ29uc3RydWN0b3Ii
IGlmICRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVHlwZSgkYXR0cmlidXRlLT50eXBlKTsK
LSAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY2xhc3NOYW1l
KSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25O
YW1lKCRhdHRyaWJ1dGUtPm5hbWUpKTsKKyAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRv
ci0+V0tfdWNmaXJzdCgkY2xhc3NOYW1lKSAuICJDb25zdHJ1Y3RvciIgLiBNYW5nbGVBdHRyaWJ1
dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSBpZiAkYXR0cmlidXRlLT5pc1N0YXRp
YzsKKyAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY2xhc3NO
YW1lKSAuIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpIC4g
IkNvbnN0cnVjdG9yIiBpZiAkY29kZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3RvclR5cGUoJGF0dHJp
YnV0ZS0+dHlwZSk7CisgICAgcmV0dXJuICJzZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmly
c3QoJGNsYXNzTmFtZSkgLiBNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRl
LT5uYW1lKTsKIH0KIAogc3ViIEdldEZ1bmN0aW9uTmFtZQpAQCAtMTg4Niw3ICsxODcyLDcgQEAg
c3ViIEdldEZ1bmN0aW9uTmFtZQogICAgICRmdW5jdGlvbk5hbWUgPSAiU3ltYm9sSXRlcmF0b3Ii
IGlmICRmdW5jdGlvbk5hbWUgZXEgIltTeW1ib2wuSXRlcmF0b3JdIjsKIAogICAgIG15ICRraW5k
ID0gJG9wZXJhdGlvbi0+aXNTdGF0aWMgPyAiQ29uc3RydWN0b3IiIDogKE9wZXJhdGlvblNob3Vs
ZEJlT25JbnN0YW5jZSgkaW50ZXJmYWNlLCAkb3BlcmF0aW9uKSA/ICJJbnN0YW5jZSIgOiAiUHJv
dG90eXBlIik7Ci0gICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05h
bWUpIC4gJGtpbmQgLiAiRnVuY3Rpb24iIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoTWFu
Z2xlQXR0cmlidXRlT3JGdW5jdGlvbk5hbWUoJGZ1bmN0aW9uTmFtZSkpOworICAgIHJldHVybiAk
Y29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkY2xhc3NOYW1lKSAuICRraW5kIC4gIkZ1bmN0aW9u
IiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRmdW5jdGlvbk5hbWUpOwogfQogCiBzdWIg
R2V0RnVsbHlRdWFsaWZpZWRJbXBsZW1lbnRhdGlvbkNhbGxOYW1lCkBAIC0yMjA0LDggKzIxOTAs
NiBAQCBzdWIgSW5zdGFuY2VPdmVycmlkZXNEZWZpbmVPd25Qcm9wZXJ0eQogewogICAgIG15ICRp
bnRlcmZhY2UgPSBzaGlmdDsKIAotICAgIHJldHVybiAwIGlmICRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0RlZmF1bHREZWZpbmVPd25Qcm9wZXJ0eX07Ci0KICAgICByZXR1cm4gJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tRGVmaW5lT3duUHJvcGVydHl9CiAg
ICAgICAgIHx8IEdldEluZGV4ZWRTZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSkKICAgICAgICAg
fHwgR2V0TmFtZWRTZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSk7CkBAIC0zOTc5LDYgKzM5NjMs
OSBAQCBzdWIgR2V0U2tpcFZUYWJsZVZhbGlkYXRpb25Gb3JJbnRlcmZhY2UKIHN1YiBUb01ldGhv
ZE5hbWUKIHsKICAgICBteSAkcGFyYW0gPSBzaGlmdDsKKyAgICAKKyAgICByZXR1cm4gJHBhcmFt
IGlmICRwYXJhbSA9fiAvXkNTU09NLzsKKwogICAgIG15ICRyZXQgPSBsY2ZpcnN0KCRwYXJhbSk7
CiAgICAgJHJldCA9fiBzL2NTUy9jc3MvIGlmICRyZXQgPX4gL15jU1MvOwogICAgICRyZXQgPX4g
cy9kT00vZG9tLyBpZiAkcmV0ID1+IC9eZE9NLzsKQEAgLTUzMjIsNiArNTMwOSwxNSBAQCBzdWIg
R2VuZXJhdGVBdHRyaWJ1dGVHZXR0ZXJCb2R5RGVmaW5pdGlvCiAgICAgICAgICAgICBBZGRUb0lt
cGxJbmNsdWRlcygiSlMiIC4gJGNvbnN0cnVjdG9yVHlwZSAuICIuaCIsICRjb25kaXRpb25hbCk7
CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEpTIiAuICRjb25z
dHJ1Y3RvclR5cGUgLiAiOjoke2NvbnN0cnVjdG9yR2V0dGVyfShKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7XG4iKTsKICAgICAgICAg
fQorICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NTU1Byb3Bl
cnR5fSkgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyJDU1NQcm9wZXJ0eU5hbWVzLmgifSA9IDE7
CisgICAgICAgIG15ICRwcm9wZXJ0eUlEID0gJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Q1NTUHJvcGVydHl9OworICAgICAgICAKKyAgICAgICAgbXkgJGdldHRlck5hbWUgPSAkYXR0
cmlidXRlLT50eXBlLT5pc1VuaW9uID8gImdldFByb3BlcnR5VmFsdWVJbnRlcm5hbEZvclBvc09y
UGl4ZWxQcmVmaXhlZCIgOiAiZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsIjsKKyAgICAgICAgCisg
ICAgICAgIG15ICR0b0pTRXhwcmVzc2lvbiA9IE5hdGl2ZVRvSlNWYWx1ZVVzaW5nUmVmZXJlbmNl
cygkYXR0cmlidXRlLCAkaW50ZXJmYWNlLCAiaW1wbC4ke2dldHRlck5hbWV9KENTU1Byb3BlcnR5
JHtwcm9wZXJ0eUlEfSkiLCAiKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkiKTsKKyAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQo
KTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICgke3RvSlNFeHByZXNzaW9ufSkpO1xuIik7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NhY2hlZEF0dHJp
YnV0ZX0pIHsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoSlNWYWx1
ZSBjYWNoZWRWYWx1ZSA9IHRoaXNPYmplY3QubV8iIC4gJGF0dHJpYnV0ZS0+bmFtZSAuICIuZ2V0
KCkpXG4iKTsKQEAgLTU0NjYsNiArNTQ2MiwyMyBAQCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVTZXR0
ZXJCb2R5RGVmaW5pdGlvCiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB2bS5oZWFw
LndyaXRlQmFycmllcigmdGhpc09iamVjdCwgdmFsdWUpO1xuIik7CiAgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICBlbnN1cmVTdGlsbEFsaXZlSGVyZSh2YWx1ZSk7XG5cbiIpOwogICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIHRydWU7XG4iKTsKKyAgICB9IGVs
c2lmICgkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDU1NQcm9wZXJ0eX0pIHsKKyAg
ICAgICAgJGltcGxJbmNsdWRlc3siQ1NTUHJvcGVydHlOYW1lcy5oIn0gPSAxOworCisgICAgICAg
IG15ICRwcm9wZXJ0eUlEID0gJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q1NTUHJv
cGVydHl9OworICAgICAgICAKKyAgICAgICAgbXkgJHNldHRlck5hbWUgPSAkYXR0cmlidXRlLT50
eXBlLT5pc1VuaW9uID8gInNldFByb3BlcnR5VmFsdWVJbnRlcm5hbEZvclBvc09yUGl4ZWxQcmVm
aXhlZCIgOiAic2V0UHJvcGVydHlWYWx1ZUludGVybmFsIjsKKyAgICAgICAgCisgICAgICAgIG15
ICRleGNlcHRpb25UaHJvd2VyID0gR2V0QXR0cmlidXRlRXhjZXB0aW9uVGhyb3dlcigkaW50ZXJm
YWNlLCAkYXR0cmlidXRlKTsKKyAgICAgICAgbXkgJHRvTmF0aXZlRXhwcmVzc2lvbiA9IEpTVmFs
dWVUb05hdGl2ZSgkaW50ZXJmYWNlLCAkYXR0cmlidXRlLCAidmFsdWUiLCAkYXR0cmlidXRlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbH0sICImbGV4aWNhbEdsb2JhbE9iamVjdCIs
ICJsZXhpY2FsR2xvYmFsT2JqZWN0IiwgInRoaXNPYmplY3QiLCAiKnRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCkiLCAkZXhjZXB0aW9uVGhyb3dlcik7CisKKyAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTtcbiIpOworICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0byBuYXRpdmVWYWx1ZSA9ICR7dG9OYXRpdmVF
eHByZXNzaW9ufTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIEF0dHJpYnV0ZVNldHRlcjo6Y2FsbChsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBbJl0ge1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICAgICAgcmV0dXJuIGltcGwuJHtzZXR0ZXJOYW1lfShDU1NQcm9wZXJ0eSR7cHJvcGVydHlJRH0s
IFdURk1vdmUobmF0aXZlVmFsdWUpKTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgfSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiB0
cnVlO1xuIik7CiAgICAgfSBlbHNpZiAoJGlzQ29uc3RydWN0b3IpIHsKICAgICAgICAgbXkgJGNv
bnN0cnVjdG9yVHlwZSA9ICRhdHRyaWJ1dGUtPnR5cGUtPm5hbWU7CiAgICAgICAgICRjb25zdHJ1
Y3RvclR5cGUgPX4gcy9Db25zdHJ1Y3RvciQvLzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uCShyZXZpc2lvbiAyNjg1MDUp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgko
d29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksMTAgQEAKICAgICAgICAgICAgICAgICAidXJsIjog
Imh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2N1c3RvbS1lbGVtZW50cy5o
dG1sI2NlcmVhY3Rpb25zIgogICAgICAgICAgICAgfQogICAgICAgICB9LAorICAgICAgICAiQ1NT
UHJvcGVydHkiOiB7CisgICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJhdHRyaWJ1dGUi
XSwKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbIioiXQorICAgICAgICB9LAogICAgICAgICAiQ2Fj
aGVkQXR0cmlidXRlIjogewogICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiYXR0cmli
dXRlIl0KICAgICAgICAgfSwKQEAgLTQ5LDkgKzUzLDYgQEAKICAgICAgICAgIkNhbGxiYWNrVGhp
c09iamVjdCI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImNhbGxiYWNrLWZ1
bmN0aW9uIiwgIm9wZXJhdGlvbiJdCiAgICAgICAgIH0sCi0gICAgICAgICJDYWxsTmFtZWRTZXR0
ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVydGllcyI6IHsKLSAgICAgICAgICAgICJjb250ZXh0c0Fs
bG93ZWQiOiBbIm9wZXJhdGlvbiJdCi0gICAgICAgIH0sCiAgICAgICAgICJDYWxsV2l0aCI6IHsK
ICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImF0dHJpYnV0ZSIsICJvcGVyYXRpb24i
XSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbIkRvY3VtZW50IiwgIkV4ZWNTdGF0ZSIsICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0IiwgIkdsb2JhbE9iamVjdCIsICJBY3RpdmVXaW5kb3ciLCAiRmly
c3RXaW5kb3ciLCAiUmVzcG9uc2libGVEb2N1bWVudCIsICJXb3JsZCJdLApAQCAtMTU3LDkgKzE1
OCw2IEBACiAgICAgICAgICJEZWZhdWx0IjogewogICAgICAgICAgICAgImNvbnRleHRzQWxsb3dl
ZCI6IFsib3BlcmF0aW9uIl0KICAgICAgICAgfSwKLSAgICAgICAgIkRlZmF1bHREZWZpbmVPd25Q
cm9wZXJ0eSI6IHsKLSAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImludGVyZmFjZSJd
Ci0gICAgICAgIH0sCiAgICAgICAgICJEaXNhYmxlZEJ5UXVpcmsiOiB7CiAgICAgICAgICAgICAi
Y29udGV4dHNBbGxvd2VkIjogWyJpbnRlcmZhY2UiLCAiZGljdGlvbmFyeSIsICJlbnVtIiwgImF0
dHJpYnV0ZSIsICJvcGVyYXRpb24iLCAiY29uc3RhbnQiLCAiZGljdGlvbmFyeS1tZW1iZXIiLCAi
aW5jbHVkZXMiXSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbIioiXSwKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlzaW9uIDI2ODUwNSkKKysr
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjY4LDQ4ICsyNjgsOCBAQCBzdGF0aWMgQ1NTUHJvcGVydHlJbmZvIHByb3BlcnR5SW5m
b0Zyb21KCiAKIH0KIAotQ1NTUHJvcGVydHlJRCBDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRDU1NQ
cm9wZXJ0eUlERnJvbUphdmFTY3JpcHRQcm9wZXJ0eU5hbWUoY29uc3QgQXRvbVN0cmluZyYgcHJv
cGVydHlOYW1lKQotewotICAgIHJldHVybiBwcm9wZXJ0eUluZm9Gcm9tSmF2YVNjcmlwdENTU1By
b3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUsIG51bGxwdHIpLnByb3BlcnR5SUQ7Ci19Ci0KLU9wdGlv
bmFsPFZhcmlhbnQ8U3RyaW5nLCBkb3VibGU+PiBDU1NTdHlsZURlY2xhcmF0aW9uOjpuYW1lZEl0
ZW0oY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lKQorRXhjZXB0aW9uT3I8dm9pZD4gQ1NT
U3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJvcGVydHlWYWx1ZUludGVybmFsKENTU1Byb3BlcnR5SUQg
cHJvcGVydHlJRCwgU3RyaW5nIHZhbHVlKQogewotICAgIGF1dG8qIHNldHRpbmdzID0gcGFyZW50
RWxlbWVudCgpID8gJnBhcmVudEVsZW1lbnQoKS0+ZG9jdW1lbnQoKS5zZXR0aW5ncygpIDogbnVs
bHB0cjsKLSAgICBhdXRvIHByb3BlcnR5SW5mbyA9IHByb3BlcnR5SW5mb0Zyb21KYXZhU2NyaXB0
Q1NTUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSwgc2V0dGluZ3MpOwotICAgIGlmICghcHJvcGVy
dHlJbmZvLnByb3BlcnR5SUQpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICBh
dXRvIHZhbHVlID0gZ2V0UHJvcGVydHlDU1NWYWx1ZUludGVybmFsKHByb3BlcnR5SW5mby5wcm9w
ZXJ0eUlEKTsKLSAgICBpZiAoIXZhbHVlKSB7Ci0gICAgICAgIC8vIElmIHRoZSBwcm9wZXJ0eSBp
cyBhIHNob3J0aGFuZCBwcm9wZXJ0eSAoc3VjaCBhcyAicGFkZGluZyIpLCBpdCBjYW4gb25seSBi
ZSBhY2Nlc3NlZCB1c2luZyBnZXRQcm9wZXJ0eVZhbHVlLgotICAgICAgICByZXR1cm4gVmFyaWFu
dDxTdHJpbmcsIGRvdWJsZT4geyBnZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWwocHJvcGVydHlJbmZv
LnByb3BlcnR5SUQpIH07Ci0gICAgfQotICAgIAotICAgIGlmIChwcm9wZXJ0eUluZm8uaGFkUGl4
ZWxPclBvc1ByZWZpeCAmJiBpczxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKSkgewotICAgICAg
ICAvLyBDYWxsIHRoaXMgdmVyc2lvbiBvZiB0aGUgZ2V0dGVyIHNvIHRoYXQsIGUuZy4sIHBpeGVs
VG9wIHJldHVybnMgdG9wIGFzIGEgbnVtYmVyCi0gICAgICAgIC8vIGluIHBpeGVsIHVuaXRzIGFu
ZCBwb3NUb3Agc2hvdWxkIGRvZXMgdGhlIHNhbWUgX2lmXyB0aGlzIGlzIGEgcG9zaXRpb25lZCBl
bGVtZW50LgotICAgICAgICAvLyBGSVhNRTogSWYgbm90IGEgcG9zaXRpb25lZCBlbGVtZW50LCBN
U0lFIGRvY3VtZW50YXRpb24gc2F5cyBwb3NUb3Agc2hvdWxkIHJldHVybiAwOyB0aGlzIHJ1bGUg
aXMgbm90IGltcGxlbWVudGVkLgotICAgICAgICByZXR1cm4gVmFyaWFudDxTdHJpbmcsIGRvdWJs
ZT4geyBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS5mbG9hdFZhbHVlKENTU1Vu
aXRUeXBlOjpDU1NfUFgpIH07Ci0gICAgfQotCi0gICAgcmV0dXJuIFZhcmlhbnQ8U3RyaW5nLCBk
b3VibGU+IHsgdmFsdWUtPmNzc1RleHQoKSB9OwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBDU1NT
dHlsZURlY2xhcmF0aW9uOjpzZXROYW1lZEl0ZW0oY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlO
YW1lLCBTdHJpbmcgdmFsdWUsIGJvb2wmIHByb3BlcnR5U3VwcG9ydGVkKQotewotICAgIGF1dG8q
IHNldHRpbmdzID0gcGFyZW50RWxlbWVudCgpID8gJnBhcmVudEVsZW1lbnQoKS0+ZG9jdW1lbnQo
KS5zZXR0aW5ncygpIDogbnVsbHB0cjsKLSAgICBhdXRvIHByb3BlcnR5SW5mbyA9IHByb3BlcnR5
SW5mb0Zyb21KYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSwgc2V0dGluZ3Mp
OwotICAgIGlmICghcHJvcGVydHlJbmZvLnByb3BlcnR5SUQpIHsKLSAgICAgICAgcHJvcGVydHlT
dXBwb3J0ZWQgPSBmYWxzZTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0KLSAgICBwcm9w
ZXJ0eVN1cHBvcnRlZCA9IHRydWU7Ci0KLSAgICBpZiAocHJvcGVydHlJbmZvLmhhZFBpeGVsT3JQ
b3NQcmVmaXgpCi0gICAgICAgIHZhbHVlLmFwcGVuZCgicHgiKTsKLQogICAgIGJvb2wgaW1wb3J0
YW50ID0gZmFsc2U7CiAgICAgaWYgKERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2hvdWxkUmVz
cGVjdFByaW9yaXR5SW5DU1NBdHRyaWJ1dGVTZXR0ZXJzKCkpIHsKICAgICAgICAgYXV0byBpbXBv
cnRhbnRJbmRleCA9IHZhbHVlLmZpbmRJZ25vcmluZ0FTQ0lJQ2FzZSgiIWltcG9ydGFudCIpOwpA
QCAtMzE5LDM4ICsyNzksNDMgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ1NTU3R5bGVEZWNsYXJhdGlv
bjo6cwogICAgICAgICB9CiAgICAgfQogCi0gICAgYXV0byBzZXRQcm9wZXJ0eUludGVybmFsUmVz
dWx0ID0gc2V0UHJvcGVydHlJbnRlcm5hbChwcm9wZXJ0eUluZm8ucHJvcGVydHlJRCwgdmFsdWUs
IGltcG9ydGFudCk7CisgICAgYXV0byBzZXRQcm9wZXJ0eUludGVybmFsUmVzdWx0ID0gc2V0UHJv
cGVydHlJbnRlcm5hbChwcm9wZXJ0eUlELCB2YWx1ZSwgaW1wb3J0YW50KTsKICAgICBpZiAoc2V0
UHJvcGVydHlJbnRlcm5hbFJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIHNl
dFByb3BlcnR5SW50ZXJuYWxSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwogCiAgICAgcmV0dXJu
IHsgfTsKIH0KIAotVmVjdG9yPEF0b21TdHJpbmc+IENTU1N0eWxlRGVjbGFyYXRpb246OnN1cHBv
cnRlZFByb3BlcnR5TmFtZXMoKSBjb25zdAorVmFyaWFudDxkb3VibGUsIFN0cmluZz4gQ1NTU3R5
bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZp
eGVkKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkKIHsKLSAgICBzdGF0aWMgdW5zaWduZWQgbnVt
TmFtZXMgPSAwOwotICAgIHN0YXRpYyBjb25zdCBBdG9tU3RyaW5nKiBjb25zdCBjc3NQcm9wZXJ0
eU5hbWVzID0gW10gewotICAgICAgICBTdHJpbmcgbmFtZXNbbnVtQ1NTUHJvcGVydGllc107Ci0g
ICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQ1NTUHJvcGVydGllczsgKytpKSB7Ci0gICAg
ICAgICAgICBDU1NQcm9wZXJ0eUlEIGlkID0gc3RhdGljX2Nhc3Q8Q1NTUHJvcGVydHlJRD4oZmly
c3RDU1NQcm9wZXJ0eSArIGkpOwotICAgICAgICAgICAgLy8gRklYTUU6IFNob3VsZCB0YWtlIGFj
Y291bnQgZm9yIGZsYWdzIGluIHNldHRpbmdzKCkuCi0gICAgICAgICAgICBpZiAoaXNFbmFibGVk
Q1NTUHJvcGVydHkoaWQpKQotICAgICAgICAgICAgICAgIG5hbWVzW251bU5hbWVzKytdID0gZ2V0
SlNQcm9wZXJ0eU5hbWUoaWQpOwotICAgICAgICB9Ci0gICAgICAgIHN0ZDo6c29ydCgmbmFtZXNb
MF0sICZuYW1lc1tudW1OYW1lc10sIFdURjo6Y29kZVBvaW50Q29tcGFyZUxlc3NUaGFuKTsKLSAg
ICAgICAgYXV0byogaWRlbnRpZmllcnMgPSBuZXcgQXRvbVN0cmluZ1tudW1OYW1lc107Ci0gICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1OYW1lczsgKytpKQotICAgICAgICAgICAg
aWRlbnRpZmllcnNbaV0gPSBuYW1lc1tpXTsKLSAgICAgICAgcmV0dXJuIGlkZW50aWZpZXJzOwot
ICAgIH0oKTsKKyAgICBhdXRvIHZhbHVlID0gZ2V0UHJvcGVydHlDU1NWYWx1ZUludGVybmFsKHBy
b3BlcnR5SUQpOworICAgIGlmICghdmFsdWUpIHsKKyAgICAgICAgLy8gSWYgdGhlIHByb3BlcnR5
IGlzIGEgc2hvcnRoYW5kIHByb3BlcnR5IChzdWNoIGFzICJwYWRkaW5nIiksIGl0IGNhbiBvbmx5
IGJlIGFjY2Vzc2VkIHVzaW5nIGdldFByb3BlcnR5VmFsdWUuCisgICAgICAgIHJldHVybiBnZXRQ
cm9wZXJ0eVZhbHVlSW50ZXJuYWwocHJvcGVydHlJRCk7CisgICAgfQorICAgIAorICAgIGlmIChp
czxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKSkgeworICAgICAgICAvLyBDYWxsIHRoaXMgdmVy
c2lvbiBvZiB0aGUgZ2V0dGVyIHNvIHRoYXQsIGUuZy4sIHBpeGVsVG9wIHJldHVybnMgdG9wIGFz
IGEgbnVtYmVyCisgICAgICAgIC8vIGluIHBpeGVsIHVuaXRzIGFuZCBwb3NUb3Agc2hvdWxkIGRv
ZXMgdGhlIHNhbWUgX2lmXyB0aGlzIGlzIGEgcG9zaXRpb25lZCBlbGVtZW50LgorICAgICAgICAv
LyBGSVhNRTogSWYgbm90IGEgcG9zaXRpb25lZCBlbGVtZW50LCBNU0lFIGRvY3VtZW50YXRpb24g
c2F5cyBwb3NUb3Agc2hvdWxkIHJldHVybiAwOyB0aGlzIHJ1bGUgaXMgbm90IGltcGxlbWVudGVk
LgorICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkuZmxv
YXRWYWx1ZShDU1NVbml0VHlwZTo6Q1NTX1BYKTsKKyAgICB9CiAKLSAgICBWZWN0b3I8QXRvbVN0
cmluZz4gcmVzdWx0OwotICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG51bU5hbWVz
KTsKKyAgICByZXR1cm4gdmFsdWUtPmNzc1RleHQoKTsKK30KIAotICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBudW1OYW1lczsgKytpKQotICAgICAgICByZXN1bHQudW5jaGVja2VkQXBwZW5k
KGNzc1Byb3BlcnR5TmFtZXNbaV0pOworRXhjZXB0aW9uT3I8dm9pZD4gQ1NTU3R5bGVEZWNsYXJh
dGlvbjo6c2V0UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZpeGVkKENTU1By
b3BlcnR5SUQgcHJvcGVydHlJRCwgVmFyaWFudDxkb3VibGUsIFN0cmluZz4gdmFsdWUpCit7Cisg
ICAgU3RyaW5nIHN0cmluZ1ZhbHVlID0gV1RGOjpzd2l0Y2hPbih2YWx1ZSwgWyZdIChjb25zdCBh
dXRvJiBpbnB1dCkgeworICAgICAgICByZXR1cm4gbWFrZVN0cmluZyhpbnB1dCwgInB4Iik7Cisg
ICAgfSk7CiAKLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBzZXRQcm9wZXJ0eVZhbHVl
SW50ZXJuYWwocHJvcGVydHlJRCwgV1RGTW92ZShzdHJpbmdWYWx1ZSkpOworfQorCitDU1NQcm9w
ZXJ0eUlEIENTU1N0eWxlRGVjbGFyYXRpb246OmdldENTU1Byb3BlcnR5SURGcm9tSmF2YVNjcmlw
dFByb3BlcnR5TmFtZShjb25zdCBBdG9tU3RyaW5nJiBwcm9wZXJ0eU5hbWUpCit7CisgICAgcmV0
dXJuIHByb3BlcnR5SW5mb0Zyb21KYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1lKHByb3BlcnR5TmFt
ZSwgbnVsbHB0cikucHJvcGVydHlJRDsKIH0KIAogU3RyaW5nIENTU1N0eWxlRGVjbGFyYXRpb246
OmNzc0Zsb2F0KCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24u
aAkocmV2aXNpb24gMjY4NTA1KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFy
YXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNzIsMTIgKzcyLDEyIEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgQ1NTU3R5bGVTaGVldCogcGFyZW50U3R5bGVTaGVldCgpIGNvbnN0IHsgcmV0dXJu
IG51bGxwdHI7IH0KIAotICAgIC8vIEJpbmRpbmdzIHN1cHBvcnQuCi0gICAgT3B0aW9uYWw8VmFy
aWFudDxTdHJpbmcsIGRvdWJsZT4+IG5hbWVkSXRlbShjb25zdCBBdG9tU3RyaW5nJik7Ci0gICAg
RXhjZXB0aW9uT3I8dm9pZD4gc2V0TmFtZWRJdGVtKGNvbnN0IEF0b21TdHJpbmcmIG5hbWUsIFN0
cmluZyB2YWx1ZSwgYm9vbCYgcHJvcGVydHlTdXBwb3J0ZWQpOwotICAgIFZlY3RvcjxBdG9tU3Ry
aW5nPiBzdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkgY29uc3Q7CisgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0UHJvcGVydHlWYWx1ZUludGVybmFsKENTU1Byb3BlcnR5SUQsIFN0cmluZyk7CisgICAg
VmFyaWFudDxkb3VibGUsIFN0cmluZz4gZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQ
aXhlbFByZWZpeGVkKENTU1Byb3BlcnR5SUQpOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFBy
b3BlcnR5VmFsdWVJbnRlcm5hbEZvclBvc09yUGl4ZWxQcmVmaXhlZChDU1NQcm9wZXJ0eUlELCBW
YXJpYW50PGRvdWJsZSwgU3RyaW5nPik7CiAKICAgICBzdGF0aWMgQ1NTUHJvcGVydHlJRCBnZXRD
U1NQcm9wZXJ0eUlERnJvbUphdmFTY3JpcHRQcm9wZXJ0eU5hbWUoY29uc3QgQXRvbVN0cmluZyYp
OworCiBwcm90ZWN0ZWQ6CiAgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbigpID0gZGVmYXVsdDsKIH07
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsCShyZXZp
c2lvbiAyNjg1MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDA2LCAyMDA3LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSwgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0Bn
bWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTgsNDAgKzE4LDI5IEBACiAgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCit0eXBlZGVmIFVTVlN0cmluZyBDU1NPTVN0cmluZzsK
KwogWwogICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JULAotICAgIERlZmF1bHREZWZpbmVP
d25Qcm9wZXJ0eSwKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlLAogICAgIEpTQ3VzdG9tSGVhZGVy
LAogICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAgIFNraXBWVGFibGVWYWxpZGF0aW9uLAog
ICAgIEV4cG9zZWQ9V2luZG93CiBdIGludGVyZmFjZSBDU1NTdHlsZURlY2xhcmF0aW9uIHsKLSAg
ICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBET01TdHJpbmcgY3NzVGV4dDsKLQotICAgIERPTVN0
cmluZyBnZXRQcm9wZXJ0eVZhbHVlKERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwotCi0gICAgW0NF
UmVhY3Rpb25zLCBNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NU3RyaW5nIHJlbW92ZVByb3BlcnR5KERP
TVN0cmluZyBwcm9wZXJ0eU5hbWUpOwotICAgIERPTVN0cmluZz8gZ2V0UHJvcGVydHlQcmlvcml0
eShET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKLQotICAgIFtDRVJlYWN0aW9ucywgTWF5VGhyb3dF
eGNlcHRpb25dIHVuZGVmaW5lZCBzZXRQcm9wZXJ0eShET01TdHJpbmcgcHJvcGVydHlOYW1lLCBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIERPTVN0cmluZyB2YWx1ZSwgb3B0aW9uYWwgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBET01TdHJpbmcgcHJpb3JpdHkgPSAiIik7Ci0KKyAgICBbQ0VS
ZWFjdGlvbnNdIGF0dHJpYnV0ZSBDU1NPTVN0cmluZyBjc3NUZXh0OwogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKLSAgICBnZXR0ZXIgRE9NU3RyaW5nIGl0ZW0o
dW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgZ2V0dGVyIENTU09NU3RyaW5nIGl0ZW0odW5zaWdu
ZWQgbG9uZyBpbmRleCk7CisgICAgQ1NTT01TdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZShDU1NPTVN0
cmluZyBwcm9wZXJ0eSk7CisgICAgLy8gRklYTUU6IFRoZSByZXR1cm4gdmFsdWUgb2YgJ2dldFBy
b3BlcnR5UHJpb3JpdHknIHNob3VsZCBub3QgYmUgbnVsbGFibGUuCisgICAgQ1NTT01TdHJpbmc/
IGdldFByb3BlcnR5UHJpb3JpdHkoQ1NTT01TdHJpbmcgcHJvcGVydHkpOworICAgIFtDRVJlYWN0
aW9ucywgTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5lZCBzZXRQcm9wZXJ0eShDU1NPTVN0cmlu
ZyBwcm9wZXJ0eSwgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB2YWx1ZSwg
b3B0aW9uYWwgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBwcmlvcml0eSA9
ICIiKTsKKyAgICBbQ0VSZWFjdGlvbnMsIE1heVRocm93RXhjZXB0aW9uXSBDU1NPTVN0cmluZyBy
ZW1vdmVQcm9wZXJ0eShDU1NPTVN0cmluZyBwcm9wZXJ0eSk7CiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIENTU1J1bGU/IHBhcmVudFJ1bGU7CisgICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgW0xl
Z2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBjc3NGbG9hdDsKIAotICAgIFtDRVJl
YWN0aW9uc10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gRE9NU3RyaW5nIGNz
c0Zsb2F0OwotCisgICAgLy8gTm9uLXN0YW5kYXJkLgogICAgIERPTVN0cmluZz8gZ2V0UHJvcGVy
dHlTaG9ydGhhbmQob3B0aW9uYWwgRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7CiAgICAgYm9vbGVh
biBpc1Byb3BlcnR5SW1wbGljaXQob3B0aW9uYWwgRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7Ci0K
LSAgICAvLyBVc2UgbmFtZWQgZ2V0dGVycy9zZXR0ZXJzIGZvciBhbGwgc3VwcG9ydCBDU1MgcHJv
cGVydHkgbmFtZXMuIFRoZSBzcGVjIHNheXMKLSAgICAvLyB0aGVzZSBzaG91bGQgYmUgbm9ybWFs
IGF0dHJpYnV0ZXMsIGJ1dCB0aGVyZSBhcmUgdG9vIG1hbnkgY29tYmluYXRpb25zIHdpdGgKLSAg
ICAvLyBwcmVmaXhlcyBmb3IgdGhpcyB0byBiZSBwcmFjdGljYWwuIElmIHdlIHJlbW92ZSBsZWdh
Y3kgYWxpYXNlcywgd2Ugc2hvdWxkCi0gICAgLy8gcmVjb25zaWRlciB0aGlzIGRlY2lzaW9uLgot
ICAgIGdldHRlciAoRE9NU3RyaW5nIG9yIGRvdWJsZSkgKERPTVN0cmluZyBuYW1lKTsKLSAgICBb
Q0VSZWFjdGlvbnMsIENhbGxOYW1lZFNldHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9wZXJ0aWVzXSBz
ZXR0ZXIgdW5kZWZpbmVkIChET01TdHJpbmcgbmFtZSwgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBET01TdHJpbmcgdmFsdWUpOwotCi0gICAgLy8gVGhpcyBtZXRob2QgaXMgZGVwcmVjYXRlZCwg
YW5kIHdlIHdvdWxkIGxpa2UgdG8gZHJvcCBzdXBwb3J0IGZvciBpdCBzb21lZGF5CiAgICAgRGVw
cmVjYXRlZENTU09NVmFsdWU/IGdldFByb3BlcnR5Q1NTVmFsdWUoRE9NU3RyaW5nIHByb3BlcnR5
TmFtZSk7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL21ha2Vwcm9wLnBsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAkocmV2aXNpb24gMjY4NTA1KQor
KysgU291cmNlL1dlYkNvcmUvY3NzL21ha2Vwcm9wLnBsCSh3b3JraW5nIGNvcHkpCkBAIC0xMzU4
LDMgKzEzNTgsMTc1IEBAIGlmIChub3QgJGdwZXJmKSB7CiAgICAgJGdwZXJmID0gJEVOVntHUEVS
Rn0gPyAkRU5We0dQRVJGfSA6ICJncGVyZiI7CiB9CiBzeXN0ZW0oIlwiJGdwZXJmXCIgLS1rZXkt
cG9zaXRpb25zPVwiKlwiIC1EIC1uIC1zIDIgQ1NTUHJvcGVydHlOYW1lcy5ncGVyZiAtLW91dHB1
dC1maWxlPUNTU1Byb3BlcnR5TmFtZXMuY3BwIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYg
ZmFpbGVkOiAkPyI7CisKKworIyBHZW5lcmF0ZSBDU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5
TmFtZXMuaWRsCisKKyMgaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLyNjc3MtcHJvcGVy
dHktdG8taWRsLWF0dHJpYnV0ZQorc3ViIGNzc1Byb3BlcnR5VG9JRExBdHRyaWJ1dGUoJCQkKQor
eworICAgIG15ICRwcm9wZXJ0eSA9IHNoaWZ0OworICAgIG15ICRsb3dlcmNhc2VGaXJzdCA9IHNo
aWZ0OworICAgIG15ICR1cHBlcmNhc2VGaXJzdCA9IHNoaWZ0OworCisgICAgbXkgJG91dHB1dCA9
ICIiOworICAgIG15ICR1cHBlcmNhc2VOZXh0ID0gJHVwcGVyY2FzZUZpcnN0OworCisgICAgaWYg
KCRsb3dlcmNhc2VGaXJzdCkgeworICAgICAgICAkcHJvcGVydHkgPSBzdWJzdHIoJHByb3BlcnR5
LCAxKTsKKyAgICB9CisKKyAgICBmb3JlYWNoIG15ICRjaGFyYWN0ZXIgKHNwbGl0IC8vLCAkcHJv
cGVydHkpIHsKKyAgICAgICAgaWYgKCRjaGFyYWN0ZXIgZXEgIi0iKSB7CisgICAgICAgICAgICAk
dXBwZXJjYXNlTmV4dCA9IDE7CisgICAgICAgIH0gZWxzaWYgKCR1cHBlcmNhc2VOZXh0KSB7Cisg
ICAgICAgICAgICAkdXBwZXJjYXNlTmV4dCA9IDA7CisgICAgICAgICAgICAkb3V0cHV0IC49IHVj
ICRjaGFyYWN0ZXI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkb3V0cHV0IC49ICRj
aGFyYWN0ZXI7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcmV0dXJuICRvdXRwdXQ7Cit9
CisKK215ICVuYW1lc0FuZEFsaWFzZXNUb05hbWU7Citmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMp
IHsKKyAgICBpZiAoZ3JlcCB7ICRfIGVxICRuYW1lIH0gQGludGVybmFsUHJvcHJlcnRpZXMpIHsK
KyAgICAgICAgbmV4dDsKKyAgICB9CisgICAgJG5hbWVzQW5kQWxpYXNlc1RvTmFtZXskbmFtZX0g
PSAkbmFtZTsKKyAgICBmb3IgbXkgJGFsaWFzIChAeyRuYW1lVG9BbGlhc2VzeyRuYW1lfX0pIHsK
KyAgICAgICAgJG5hbWVzQW5kQWxpYXNlc1RvTmFtZXskYWxpYXN9ID0gJG5hbWU7CisgICAgfQor
fQorbXkgQG5hbWVzQW5kQWxpYXNlcyA9IHNvcnQga2V5cyglbmFtZXNBbmRBbGlhc2VzVG9OYW1l
KTsKKworb3BlbiBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMLCAiPiIs
ICJDU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsIiBvciBkaWUgIkNvdWxkIG5v
dCBvcGVuIENTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5pZGwgZm9yIHdyaXRpbmdc
biI7CitwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMIDw8ICJF
T0YiOworLy8gVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gJGlucHV0
RmlsZSBieSB0aGUgbWFrZXByb3AucGwgc2NyaXB0LiBEbyBub3QgZWRpdCBpdC4KKwordHlwZWRl
ZiBVU1ZTdHJpbmcgQ1NTT01TdHJpbmc7CisKK3BhcnRpYWwgaW50ZXJmYWNlIENTU1N0eWxlRGVj
bGFyYXRpb24geworRU9GCisgCitwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlf
TkFNRVNfSURMIDw8ICJFT0YiOworICAgIC8vIEZvciBlYWNoIENTUyBwcm9wZXJ0eSBwcm9wZXJ0
eSB0aGF0IGlzIGEgc3VwcG9ydGVkIENTUyBwcm9wZXJ0eSwgdGhlIGZvbGxvd2luZworICAgIC8v
IHBhcnRpYWwgaW50ZXJmYWNlIGFwcGxpZXMgd2hlcmUgY2FtZWwtY2FzZWQgYXR0cmlidXRlIGlz
IG9idGFpbmVkIGJ5IHJ1bm5pbmcgdGhlCisgICAgLy8gQ1NTIHByb3BlcnR5IHRvIElETCBhdHRy
aWJ1dGUgYWxnb3JpdGhtIGZvciBwcm9wZXJ0eS4KKyAgICAvLyBFeGFtcGxlOiBmb250LXNpemUg
LT4gZWxlbWVudC5zdHlsZS5mb250U2l6ZQorICAgIC8vIEV4YW1wbGU6IC13ZWJraXQtdHJhbnNm
b3JtIC0+IGVsZW1lbnQuc3R5bGUuV2Via2l0VHJhbnNmb3JtCisgICAgLy8gW0NFUmVhY3Rpb25z
XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBfY2FtZWxf
Y2FzZWRfYXR0cmlidXRlOworRU9GCisKK2ZvcmVhY2ggbXkgJG5hbWVPckFsaWFzIChAbmFtZXNB
bmRBbGlhc2VzKSB7CisgICAgbXkgJGNhbWVsQ2FzZWRBdHRyaWJ1dGVOYW1lID0gY3NzUHJvcGVy
dHlUb0lETEF0dHJpYnV0ZSgkbmFtZU9yQWxpYXMsIDAsIDApOworICAgIG15ICRuYW1lID0gJG5h
bWVzQW5kQWxpYXNlc1RvTmFtZXskbmFtZU9yQWxpYXN9OworICAgIG15ICRwcm9wZXJ0eUlkID0g
JG5hbWVUb0lkeyRuYW1lc0FuZEFsaWFzZXNUb05hbWV7JG5hbWV9fTsKKyAgICAKKyAgICBteSBA
ZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMgPSAoIkNTU1Byb3BlcnR5PSR7cHJvcGVydHlJZH0iKTsK
KyAgICBwdXNoKEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcywgIkVuYWJsZWRCeVNldHRpbmc9JHtz
ZXR0aW5nc0ZsYWdzeyRuYW1lfX0iKSBpZiAkc2V0dGluZ3NGbGFnc3skbmFtZX07CisgICAgcHVz
aChAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMsICJFbmFibGVkQXRSdW50aW1lPSR7cnVudGltZUZs
YWdzeyRuYW1lfX0iKSBpZiAkcnVudGltZUZsYWdzeyRuYW1lfTsKKyAgICBteSAkZXh0ZW5kZWRB
dHRyaWJ1dGVzID0gam9pbigiLCAiLCBAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMpOworCisgICAg
cHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCAiICAgIFtDRVJl
YWN0aW9ucywgJHtleHRlbmRlZEF0dHJpYnV0ZXN9XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0Vt
cHR5U3RyaW5nXSBDU1NPTVN0cmluZyAke2NhbWVsQ2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiI7Cit9
CisKK3ByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgPDwgIkVP
RiI7CisKKyAgICAvLyBGb3IgZWFjaCBDU1MgcHJvcGVydHkgcHJvcGVydHkgdGhhdCBpcyBhIHN1
cHBvcnRlZCBDU1MgcHJvcGVydHkgYW5kIHRoYXQgYmVnaW5zCisgICAgLy8gd2l0aCB0aGUgc3Ry
aW5nIC13ZWJraXQtLCB0aGUgZm9sbG93aW5nIHBhcnRpYWwgaW50ZXJmYWNlIGFwcGxpZXMgd2hl
cmUgd2Via2l0LWNhc2VkCisgICAgLy8gYXR0cmlidXRlIGlzIG9idGFpbmVkIGJ5IHJ1bm5pbmcg
dGhlIENTUyBwcm9wZXJ0eSB0byBJREwgYXR0cmlidXRlIGFsZ29yaXRobSBmb3IKKyAgICAvLyBw
cm9wZXJ0eSwgd2l0aCB0aGUgbG93ZXJjYXNlIGZpcnN0IGZsYWcgc2V0LgorICAgIC8vIEV4YW1w
bGU6IC13ZWJraXQtdHJhbnNmb3JtIC0+IGVsZW1lbnQuc3R5bGUud2Via2l0VHJhbnNmb3JtCisg
ICAgLy8gW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBD
U1NPTVN0cmluZyBfd2Via2l0X2Nhc2VkX2F0dHJpYnV0ZTsKK0VPRgorCitmb3JlYWNoIG15ICRu
YW1lT3JBbGlhcyAoZ3JlcCB7ICRfID1+IC9eXC13ZWJraXRcLS8gfSBAbmFtZXNBbmRBbGlhc2Vz
KSB7CisgICAgbXkgJHdlYmtpdENhc2VkQXR0cmlidXRlTmFtZSA9IGNzc1Byb3BlcnR5VG9JRExB
dHRyaWJ1dGUoJG5hbWVPckFsaWFzLCAxLCAwKTsKKyAgICBteSAkbmFtZSA9ICRuYW1lc0FuZEFs
aWFzZXNUb05hbWV7JG5hbWVPckFsaWFzfTsKKyAgICBteSAkcHJvcGVydHlJZCA9ICRuYW1lVG9J
ZHskbmFtZXNBbmRBbGlhc2VzVG9OYW1leyRuYW1lfX07CisgICAgCisgICAgbXkgQGV4dGVuZGVk
QXR0cmlidXRlVmFsdWVzID0gKCJDU1NQcm9wZXJ0eT0ke3Byb3BlcnR5SWR9Iik7CisgICAgcHVz
aChAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMsICJFbmFibGVkQnlTZXR0aW5nPSR7c2V0dGluZ3NG
bGFnc3skbmFtZX19IikgaWYgJHNldHRpbmdzRmxhZ3N7JG5hbWV9OworICAgIHB1c2goQGV4dGVu
ZGVkQXR0cmlidXRlVmFsdWVzLCAiRW5hYmxlZEF0UnVudGltZT0ke3J1bnRpbWVGbGFnc3skbmFt
ZX19IikgaWYgJHJ1bnRpbWVGbGFnc3skbmFtZX07CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRl
cyA9IGpvaW4oIiwgIiwgQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzKTsKKworICAgIHByaW50IENT
U19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMs
ICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgJHt3ZWJraXRDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIjsKK30KKworcHJp
bnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsKKwor
ICAgIC8vIEZvciBlYWNoIENTUyBwcm9wZXJ0eSBwcm9wZXJ0eSB0aGF0IGlzIGEgc3VwcG9ydGVk
IENTUyBwcm9wZXJ0eSwgZXhjZXB0IGZvcgorICAgIC8vIHByb3BlcnRpZXMgdGhhdCBoYXZlIG5v
ICItIiAoVSswMDJEKSBpbiB0aGUgcHJvcGVydHkgbmFtZSwgdGhlIGZvbGxvd2luZyBwYXJ0aWFs
CisgICAgLy8gaW50ZXJmYWNlIGFwcGxpZXMgd2hlcmUgZGFzaGVkIGF0dHJpYnV0ZSBpcyBwcm9w
ZXJ0eS4KKyAgICAvLyBFeGFtcGxlOiBmb250LXNpemUgLT4gZWxlbWVudC5zdHlsZVsnZm9udC1z
aXplJ10KKyAgICAvLyBFeGFtcGxlOiAtd2Via2l0LXRyYW5zZm9ybSAtPiBlbGVtZW50LnN0eWxl
LlsnLXdlYmtpdC10cmFuc2Zvcm0nXQorICAgIC8vIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgX2Rhc2hlZF9hdHRyaWJ1dGU7CitF
T0YKK2ZvcmVhY2ggbXkgJG5hbWVPckFsaWFzIChncmVwIHsgJF8gPX4gL1wtLyB9IEBuYW1lc0Fu
ZEFsaWFzZXMpIHsKKyAgICBteSAkZGFzaGVkQXR0cmlidXRlTmFtZSA9ICRuYW1lT3JBbGlhczsK
KyAgICBteSAkbmFtZSA9ICRuYW1lc0FuZEFsaWFzZXNUb05hbWV7JG5hbWVPckFsaWFzfTsKKyAg
ICBteSAkcHJvcGVydHlJZCA9ICRuYW1lVG9JZHskbmFtZXNBbmRBbGlhc2VzVG9OYW1leyRuYW1l
fX07CisgICAgCisgICAgbXkgQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzID0gKCJDU1NQcm9wZXJ0
eT0ke3Byb3BlcnR5SWR9Iik7CisgICAgcHVzaChAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMsICJF
bmFibGVkQnlTZXR0aW5nPSR7c2V0dGluZ3NGbGFnc3skbmFtZX19IikgaWYgJHNldHRpbmdzRmxh
Z3N7JG5hbWV9OworICAgIHB1c2goQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzLCAiRW5hYmxlZEF0
UnVudGltZT0ke3J1bnRpbWVGbGFnc3skbmFtZX19IikgaWYgJHJ1bnRpbWVGbGFnc3skbmFtZX07
CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlcyA9IGpvaW4oIiwgIiwgQGV4dGVuZGVkQXR0cmli
dXRlVmFsdWVzKTsKKworICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9O
QU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgJHtkYXNoZWRBdHRyaWJ1
dGVOYW1lfTtcbiI7Cit9CisKKyMgRXZlcnl0aGluZyBiZWxvdyBoZXJlIGlzIG5vbi1zdGFuZGFy
ZC4KKworcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAi
RU9GIjsKKworICAgIC8vIE5vbi1zdGFuZGFyZC4gU3BlY2lhbCBjYXNlIHByb3BlcnRpZXMgc3Rh
cnRpbmcgd2l0aCAtZXB1Yi0gbGlrZSBpcyBkb25lIGZvcgorICAgIC8vIC13ZWJraXQtLCB3aGVy
ZSBhdHRyaWJ1dGUgaXMgb2J0YWluZWQgYnkgcnVubmluZyB0aGUgQ1NTIHByb3BlcnR5IHRvIElE
TCBhdHRyaWJ1dGUKKyAgICAvLyBhbGdvcml0aG0gZm9yIHByb3BlcnR5LCB3aXRoIHRoZSBsb3dl
cmNhc2UgZmlyc3QgZmxhZyBzZXQuCisgICAgLy8gRXhhbXBsZTogLWVwdWItY2FwdGlvbi1zaWRl
IC0+IGVsZW1lbnQuc3R5bGUuZXB1YkNhcHRpb25TaWRlCitFT0YKK2ZvcmVhY2ggbXkgJG5hbWVP
ckFsaWFzIChncmVwIHsgJF8gPX4gL15cLWVwdWJcLS8gfSBAbmFtZXNBbmRBbGlhc2VzKSB7Cisg
ICAgbXkgJGVwdWJDYXNlZEF0dHJpYnV0ZU5hbWUgPSBjc3NQcm9wZXJ0eVRvSURMQXR0cmlidXRl
KCRuYW1lT3JBbGlhcywgMSwgMCk7CisgICAgbXkgJG5hbWUgPSAkbmFtZXNBbmRBbGlhc2VzVG9O
YW1leyRuYW1lT3JBbGlhc307CisgICAgbXkgJHByb3BlcnR5SWQgPSAkbmFtZVRvSWR7JG5hbWVz
QW5kQWxpYXNlc1RvTmFtZXskbmFtZX19OworICAgIAorICAgIG15IEBleHRlbmRlZEF0dHJpYnV0
ZVZhbHVlcyA9ICgiQ1NTUHJvcGVydHk9JHtwcm9wZXJ0eUlkfSIpOworICAgIHB1c2goQGV4dGVu
ZGVkQXR0cmlidXRlVmFsdWVzLCAiRW5hYmxlZEJ5U2V0dGluZz0ke3NldHRpbmdzRmxhZ3N7JG5h
bWV9fSIpIGlmICRzZXR0aW5nc0ZsYWdzeyRuYW1lfTsKKyAgICBwdXNoKEBleHRlbmRlZEF0dHJp
YnV0ZVZhbHVlcywgIkVuYWJsZWRBdFJ1bnRpbWU9JHtydW50aW1lRmxhZ3N7JG5hbWV9fSIpIGlm
ICRydW50aW1lRmxhZ3N7JG5hbWV9OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZXMgPSBqb2lu
KCIsICIsIEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcyk7CisKKyAgICBwcmludCBDU1NfU1RZTEVf
REVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVhY3Rpb25zLCAke2V4dGVu
ZGVkQXR0cmlidXRlc31dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nICR7ZXB1YkNhc2VkQXR0cmlidXRlTmFtZX07XG4iOworfQorCitwcmludCBDU1NfU1RZ
TEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMIDw8ICJFT0YiOworCisgICAgLy8gTm9u
LXN0YW5kYXJkLiBBZGQgc3BlY2lhbCBjYXNlcyBmb3IgYWxsIHByb3BlcnRpZXMgbm90IHN0YXJ0
aW5nIHdpdGggLXdlYmtpdC0gb3IgLWVwdWItCisgICAgLy8gdGhhdCBwdXRzIGFuIG5ldyBwcmVm
aXggb2YgY3NzLCBDc3MsIHBvcywgUG9zLCBwaXhlbCBhbmQgUGl4ZWwgb24gZWFjaC4KKyAgICAv
LyBFeGFtcGxlIHRvcCAtPiBlbGVtZW50LnN0eWxlLnBvc1RvcAorICAgIC8vIEV4YW1wbGUgdG9w
IC0+IGVsZW1lbnQuc3R5bGUuUGl4ZWxUb3AKK0VPRgorZm9yZWFjaCBteSAkbmFtZU9yQWxpYXMg
KGdyZXAgeyAkXyAhfiAvXlwtd2Via2l0XC18XlwtZXB1YlwtLyB9IEBuYW1lc0FuZEFsaWFzZXMp
IHsKKyAgICBteSAkY2FtZWxDYXNlZEF0dHJpYnV0ZU5hbWUgPSBjc3NQcm9wZXJ0eVRvSURMQXR0
cmlidXRlKCRuYW1lT3JBbGlhcywgMCwgMSk7CisgICAgbXkgJG5hbWUgPSAkbmFtZXNBbmRBbGlh
c2VzVG9OYW1leyRuYW1lT3JBbGlhc307CisgICAgbXkgJHByb3BlcnR5SWQgPSAkbmFtZVRvSWR7
JG5hbWVzQW5kQWxpYXNlc1RvTmFtZXskbmFtZX19OworICAgIAorICAgIG15IEBleHRlbmRlZEF0
dHJpYnV0ZVZhbHVlcyA9ICgiQ1NTUHJvcGVydHk9JHtwcm9wZXJ0eUlkfSIpOworICAgIHB1c2go
QGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzLCAiRW5hYmxlZEJ5U2V0dGluZz0ke3NldHRpbmdzRmxh
Z3N7JG5hbWV9fSIpIGlmICRzZXR0aW5nc0ZsYWdzeyRuYW1lfTsKKyAgICBwdXNoKEBleHRlbmRl
ZEF0dHJpYnV0ZVZhbHVlcywgIkVuYWJsZWRBdFJ1bnRpbWU9JHtydW50aW1lRmxhZ3N7JG5hbWV9
fSIpIGlmICRydW50aW1lRmxhZ3N7JG5hbWV9OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZXMg
PSBqb2luKCIsICIsIEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcyk7CisKKyAgICBwcmludCBDU1Nf
U1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVhY3Rpb25zLCAk
e2V4dGVuZGVkQXR0cmlidXRlc31dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdd
IENTU09NU3RyaW5nIGNzcyR7Y2FtZWxDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIiB1bmxlc3MgJGNh
bWVsQ2FzZWRBdHRyaWJ1dGVOYW1lIGVxICJGbG9hdCI7CisgICAgcHJpbnQgQ1NTX1NUWUxFX0RF
Q0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgJHtleHRlbmRl
ZEF0dHJpYnV0ZXN9XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyBDc3Mke2NhbWVsQ2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiIgdW5sZXNzICRjYW1lbENhc2Vk
QXR0cmlidXRlTmFtZSBlcSAiRmxvYXQiOworICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElP
Tl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1
dGVzfV0gYXR0cmlidXRlIChkb3VibGUgb3IgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZykgcG9zJHtjYW1lbENhc2VkQXR0cmlidXRlTmFtZX07XG4iOworICAgIHByaW50IENT
U19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMs
ICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIChkb3VibGUgb3IgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZykgUG9zJHtjYW1lbENhc2VkQXR0cmlidXRlTmFtZX07
XG4iOworICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwg
IiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIChkb3Vi
bGUgb3IgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZykgcGl4ZWwke2NhbWVs
Q2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiI7CisgICAgcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9O
X1BST1BFUlRZX05BTUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgJHtleHRlbmRlZEF0dHJpYnV0
ZXN9XSBhdHRyaWJ1dGUgKGRvdWJsZSBvciBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09N
U3RyaW5nKSBQaXhlbCR7Y2FtZWxDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIjsKK30KKworcHJpbnQg
Q1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsKK307CitF
T0YKKworY2xvc2UgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETDsKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLWVudW1lcmF0ZS1wcm9wZXJ0aWVzLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtZW51bWVyYXRlLXByb3Bl
cnRpZXMuaHRtbAkocmV2aXNpb24gMjY4NDk0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5
bGUtZW51bWVyYXRlLXByb3BlcnRpZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjMsMzMgKzIz
LDYgQEAKICAgICAgICAgc2hvdWxkQmVGYWxzZSgiJ2JvZ3VzLXJhbmRvbS1TdHJpbmcnIGluIGRv
Y3VtZW50LmJvZHkuc3R5bGUiKTsKICAgICAgICAgc2hvdWxkQmVUcnVlKCInY3NzVGV4dCcgaW4g
ZG9jdW1lbnQuYm9keS5zdHlsZSIpOwogICAgICAgICBzaG91bGRCZVRydWUoIidnZXRQcm9wZXJ0
eUNTU1ZhbHVlJyBpbiBkb2N1bWVudC5ib2R5LnN0eWxlIik7Ci0KLSAgICAgICAgLy8gVGVzdCBD
U1MgcHJvcGVydHkgb3JkZXIuCi0gICAgICAgIHZhciBzdGFydGVkOwotICAgICAgICB2YXIgY3Nz
UHJvcGVydHlDb3VudCA9IDA7Ci0gICAgICAgIHZhciBwcmV2aW91czsKLSAgICAgICAgdmFyIHNl
ZW5GaWx0ZXI7Ci0gICAgICAgIGZvciAodmFyIHAgaW4gZG9jdW1lbnQuYm9keS5zdHlsZSkgewot
ICAgICAgICAgICAgaWYgKHAgPT09ICJhbGlnbm1lbnRCYXNlbGluZSIpCi0gICAgICAgICAgICAg
ICAgc3RhcnRlZCA9IHRydWU7Ci0gICAgICAgICAgICBpZiAoIXN0YXJ0ZWQpCi0gICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBpZiAocCA9PT0gImZpbHRlciIpCi0gICAgICAg
ICAgICAgICAgc2VlbkZpbHRlciA9IHRydWU7Ci0gICAgICAgICAgICBpZiAocHJldmlvdXMgJiYg
cHJldmlvdXMgPj0gcCkgewotICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkludmFsaWQgQ1NT
LW1hcHBlZCBwcm9wZXJ0eSBvcmRlcjogJyIgKyBwICsgIicgYWZ0ZXIgJyIgKyBwcmV2aW91cyAr
ICInIik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBpZiAoKytjc3NQcm9wZXJ0eUNvdW50IDw9IDQwMCkKLSAgICAgICAgICAgICAgICBwcmV2aW91
cyA9IHA7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoc2VlbkZpbHRl
cikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIENTUyBwcm9wZXJ0eSBvcmRl
ciBpcyBjb3JyZWN0Iik7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJUaGUgJ2ZpbHRlcicgcHJvcGVydHkgd2FzIG5vdCBlbnVtZXJhdGVkIik7
Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KICAgICA8
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHls
ZURlY2xhcmF0aW9uL2Nzc3N0eWxlZGVjbGFyYXRpb24tcHJvcGVydGllcy1kZXNjcmlwdG9yLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlv
bi9jc3NzdHlsZWRlY2xhcmF0aW9uLXByb3BlcnRpZXMtZGVzY3JpcHRvci5odG1sCShyZXZpc2lv
biAyNjg0OTQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nz
c3N0eWxlZGVjbGFyYXRpb24tcHJvcGVydGllcy1kZXNjcmlwdG9yLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTUsOCArNSw5IEBACiAgICAgPHNjcmlwdD4KICAgICAgICAgZGVzY3JpcHRpb24oIlRo
aXMgdGVzdHMgdGhlIGRlc2NyaXB0b3Igb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBwcm9wZXJ0aWVz
LiIpOwogCi0gICAgICAgIHZhciBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihkb2N1bWVudC5ib2R5LnN0eWxlLCAnY29sb3InKTsKLSAgICAgICAgc2hvdWxkQmVU
cnVlKCJkZXNjcmlwdG9yWyd3cml0YWJsZSddIik7CisgICAgICAgIHZhciBkZXNjcmlwdG9yID0g
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkb2N1bWVudC5ib2R5LnN0eWxlLl9fcHJv
dG9fXywgJ2NvbG9yJyk7CisgICAgICAgIHNob3VsZEJlVHlwZSgiZGVzY3JpcHRvclsnZ2V0J10i
LCAiRnVuY3Rpb24iKTsKKyAgICAgICAgc2hvdWxkQmVUeXBlKCJkZXNjcmlwdG9yWydzZXQnXSIs
ICJGdW5jdGlvbiIpOwogICAgICAgICBzaG91bGRCZVRydWUoImRlc2NyaXB0b3JbJ2VudW1lcmFi
bGUnXSIpOwogICAgICAgICBzaG91bGRCZVRydWUoImRlc2NyaXB0b3JbJ2NvbmZpZ3VyYWJsZSdd
Iik7CiAgICAgPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vcHV0LW92ZXJyaWRl
LXNob3VsZC1ub3QtdXNlLWljLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9t
L3B1dC1vdmVycmlkZS1zaG91bGQtbm90LXVzZS1pYy5odG1sCShyZXZpc2lvbiAyNjg0OTQpCisr
KyBMYXlvdXRUZXN0cy9qcy9kb20vcHV0LW92ZXJyaWRlLXNob3VsZC1ub3QtdXNlLWljLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTgsMTAgKzgsMTAgQEAKIDxzY3JpcHQ+CiAgICAgdGVzdChmdW5j
dGlvbigpIHsKICAgICAgICAgZnVuY3Rpb24gdHJhbnNpdGlvbmVkKCkgewotICAgICAgICAgICAg
c3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJykuc3R5bGU7CisgICAgICAgICAgICBk
YXRhc2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpLmRhdGFzZXQ7CiAgICAgICAgICAg
ICBmb3IodmFyIGkgPSAwOyBpIDwgMjA7IGkrKykKLSAgICAgICAgICAgICAgICBzdHlsZVsncCcr
aV0gPSBpOwotICAgICAgICAgICAgcmV0dXJuIHN0eWxlOworICAgICAgICAgICAgICAgIGRhdGFz
ZXRbJ3AnK2ldID0gaTsKKyAgICAgICAgICAgIHJldHVybiBkYXRhc2V0OwogICAgICAgICB9CiAK
ICAgICAgICAgZnVuY3Rpb24gcHV0dGVyKG8pIHsKSW5kZXg6IExheW91dFRlc3RzL3RyYW5zaXRp
b25zL3RyYW5zaXRpb25zLXBhcnNpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90
cmFuc2l0aW9ucy90cmFuc2l0aW9ucy1wYXJzaW5nLmh0bWwJKHJldmlzaW9uIDI2ODQ5NCkKKysr
IExheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb25zLXBhcnNpbmcuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMzAsOCArMzAsNiBAQCBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0
aW9uUHJvcGVyCiBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS53ZWJraXRUcmFuc2l0aW9uUHJvcGVy
dHkiLCAiJ2FsbCciKTsKIAogc3R5bGUudHJhbnNpdGlvblByb3BlcnR5ID0gIm5vbmUiOwotc2hv
dWxkTm90QmUoIk9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd0cmFuc2l0aW9uUHJvcGVydHkn
KSIsICItMSIpOwotc2hvdWxkQmUoIk9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd3ZWJraXRU
cmFuc2l0aW9uUHJvcGVydHknKSIsICItMSIpOwogc2hvdWxkQmUoInN0eWxlLnRyYW5zaXRpb25Q
cm9wZXJ0eSIsICInbm9uZSciKTsKIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25Q
cm9wZXJ0eSIsICInbm9uZSciKTsKIHNob3VsZEJlKCJzdHlsZS53ZWJraXRUcmFuc2l0aW9uUHJv
cGVydHkiLCAiJ25vbmUnIik7CkBAIC0xNzYsOCArMTc0LDYgQEAgc2hvdWxkQmUoImNvbXB1dGVk
U3R5bGUudHJhbnNpdGlvbkR1cmF0aQogc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUud2Via2l0VHJh
bnNpdGlvbkR1cmF0aW9uIiwgIicwcyciKTsKIAogc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uID0g
IjBzIjsKLXNob3VsZE5vdEJlKCJPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZigndHJhbnNpdGlv
bkR1cmF0aW9uJykiLCAiLTEiKTsKLXNob3VsZEJlKCJPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhP
Zignd2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uJykiLCAiLTEiKTsKIHNob3VsZEJlKCJzdHlsZS50
cmFuc2l0aW9uRHVyYXRpb24iLCAiJzBzJyIpOwogc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJh
bnNpdGlvbkR1cmF0aW9uIiwgIicwcyciKTsKIHNob3VsZEJlKCJzdHlsZS53ZWJraXRUcmFuc2l0
aW9uRHVyYXRpb24iLCAiJzBzJyIpOwpAQCAtMjU2LDggKzI1Miw2IEBAIHNob3VsZEJlKCJjb21w
dXRlZFN0eWxlLnRyYW5zaXRpb25UaW1pbmcKIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLndlYmtp
dFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiIsICInZWFzZSciKTsKIAogc3R5bGUudHJhbnNpdGlv
blRpbWluZ0Z1bmN0aW9uID0gImxpbmVhciI7Ci1zaG91bGROb3RCZSgiT2JqZWN0LmtleXMoc3R5
bGUpLmluZGV4T2YoJ3RyYW5zaXRpb25UaW1pbmdGdW5jdGlvbicpIiwgIi0xIik7Ci1zaG91bGRC
ZSgiT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3dlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5j
dGlvbicpIiwgIi0xIik7CiBzaG91bGRCZSgic3R5bGUudHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9u
IiwgIidsaW5lYXInIik7CiBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uVGltaW5n
RnVuY3Rpb24iLCAiJ2xpbmVhciciKTsKIHNob3VsZEJlKCJzdHlsZS53ZWJraXRUcmFuc2l0aW9u
VGltaW5nRnVuY3Rpb24iLCAiJ2xpbmVhciciKTsKQEAgLTQ4NSw4ICs0NzksNiBAQCBzaG91bGRC
ZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uRGVsYXkiCiBzaG91bGRCZSgiY29tcHV0ZWRTdHls
ZS53ZWJraXRUcmFuc2l0aW9uRGVsYXkiLCAiJzBzJyIpOwogCiBzdHlsZS50cmFuc2l0aW9uRGVs
YXkgPSAiMHMiOwotc2hvdWxkTm90QmUoIk9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd0cmFu
c2l0aW9uRGVsYXknKSIsICItMSIpOwotc2hvdWxkQmUoIk9iamVjdC5rZXlzKHN0eWxlKS5pbmRl
eE9mKCd3ZWJraXRUcmFuc2l0aW9uRGVsYXknKSIsICItMSIpOwogc2hvdWxkQmUoInN0eWxlLnRy
YW5zaXRpb25EZWxheSIsICInMHMnIik7CiBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0
aW9uRGVsYXkiLCAiJzBzJyIpOwogc2hvdWxkQmUoInN0eWxlLndlYmtpdFRyYW5zaXRpb25EZWxh
eSIsICInMHMnIik7CkBAIC01NjUsOCArNTU3LDYgQEAgc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUu
dHJhbnNpdGlvbiIsICInYQogc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUud2Via2l0VHJhbnNpdGlv
biIsICInYWxsIDBzIGVhc2UgMHMnIik7CiAKIHN0eWxlLnRyYW5zaXRpb24gPSAibm9uZSI7Ci1z
aG91bGROb3RCZSgiT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3RyYW5zaXRpb24nKSIsICIt
MSIpOwotc2hvdWxkQmUoIk9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd3ZWJraXRUcmFuc2l0
aW9uJykiLCAiLTEiKTsKIHNob3VsZEJlKCJzdHlsZS50cmFuc2l0aW9uIiwgIidub25lJyIpOwog
c2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJhbnNpdGlvbiIsICInbm9uZSAwcyBlYXNlIDBzJyIp
Owogc2hvdWxkQmUoInN0eWxlLndlYmtpdFRyYW5zaXRpb24iLCAiJ25vbmUnIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411475</attachid>
            <date>2020-10-15 12:56:45 -0700</date>
            <delta_ts>2020-10-15 13:46:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217623-20201015125642.patch</filename>
            <type>text/plain</type>
            <size>1864609</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg3IEBACisyMDIwLTEwLTE1ICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIGJy
ZWFrcyBKUyBzcGVjIChwcm9wZXJ0aWVzIG5vdCBzaG93aW5nIHVwIGluIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eU5hbWVzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE3NjIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVwbGFjZSBuYW1lZCBnZXR0ZXIvc2V0dGVyIGJhc2VkIGltcGxlbWVudGF0aW9uIG9m
IGFjY2VzcyB0byBDU1NTdHlsZURlY2xhcmF0aW9uIHByb3BlcnR5IHZhbHVlcworICAgICAgICB3
aXRoIGEgZ2VuZXJhdGVkIHBhcnRpYWwgaW50ZXJmYWNlIHRoYXQgbGlzdHMgYWxsIHRoZSBwcm9w
ZXJ0aWVzIGV4YWN0bHkuCisgICAgICAgIAorICAgICAgICBUbyBrZWVwIHRoaW5ncyBjb25zaXN0
ZW50IHdpdGggZXhpc3RpbmcgYmVoYXZpb3IsIGluIGFkZGl0aW9uIHRvIHRoZSBzcGVjJ2QgcHJv
cGVydGllcywgd2UgYWxzbworICAgICAgICBtYWludGFpbiBhZGRpdGlvbmFsIHByb3BlcnRpZXMg
c3VjaCBhcyBFcHViKiAoaW4gYWRkaXRpb24gdG8gdGhlIGVwdWIqIHByb3BlcnRpZXMgdGhlIHNw
ZWMgc2F5cworICAgICAgICB3ZSBzaG91bGQpLCBhbmQgQ3NzLCBjc3MsIFBvcywgcG9zLCBQaXhl
bCwgYW5kIFBpeGVsIHByZWZpeGVkIHByb3BlcnRpZXMuIEFzIGEgZm9sbG93IHVwLCB3ZSBzaG91
bGQKKyAgICAgICAgY29uc2lkZXIgcmVtb3ZpbmcgdGhlc2UgYXMgdGhleSBhcmUgbm90IHN1cHBv
cnRlZCBieSB0aGUgc3RhbmRhcmQgb3Igb3RoZXIgYnJvd3NlcnMuCisKKyAgICAgICAgRHVlIHRv
IG5lZWRpbmcgdG8gc3VwcG9ydCBjYXNlcyBsaWtlIENTU1N0eWxlRGVjbGFyYXRpb24jd2Via2l0
QWxpZ25TZWxmIGFuZCBDU1NTdHlsZURlY2xhcmF0aW9uI1dlYmtpdEFsaWduU2VsZiwKKyAgICAg
ICAgdGhlIG5hbWluZyBjb252ZW50aW9uIGZvciB0aGUgYy13cmFwcGVyIGZ1bmN0aW9ucyBpbiB0
aGUgZ2VuZXJhdGVkIGJpbmRpbmdzIGhhZCB0byBiZSB1cGRhdGVkIHRvIG5vdCBpZ25vcmUgdGhl
CisgICAgICAgIGNhc2Ugb2YgdGhlIGxlYWRpbmcgY2hhcmFjdGVyLiBUaGUgbmV3IGNvbnZlbnRp
b24gdXNlcyBhIGxlYWRpbmcgXyAodW5sZXNzIHRoZSBpZGVudGlmaWVyIGFscmVhZHkgc3RhcnRz
IHdpdGggb25lKQorICAgICAgICBjaGFuZ2luZyBhIGZ1bmN0aW9uIHN1Y2ggYXMganNET01XaW5k
b3dJbnN0YW5jZUZ1bmN0aW9uU2hvd01vZGFsRGlhbG9nIHRvIGpzRE9NV2luZG93SW5zdGFuY2VG
dW5jdGlvbl9zaG93TW9kYWxEaWFsb2cuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5tYWtlOgorICAgICAgICBHZW5lcmF0ZSBDU1NTdHlsZURlY2xhcmF0aW9uK1By
b3BlcnR5TmFtZXMuaWRsIGFuZCBlbnN1cmUgaXQgaXMgY29tcGlsZSB0b2dldGhlciB3aXRoIHRo
ZSBvdGhlcgorICAgICAgICBiaW5kaW5ncy4KKworICAgICAgICAqIGNzcy9tYWtlcHJvcC5wbDoK
KyAgICAgICAgQWRkIGdlbmVyYXRpb24gb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbitQcm9wZXJ0eU5h
bWVzLmlkbCBmcm9tIENTU1Byb3BlcnRpZXMuanNvbi4KKworICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvSURMQXR0cmlidXRlcy5qc29uOgorICAgICAgICBSZW1vdmUgQ2FsbE5hbWVkU2V0dGVy
T25seUZvclN1cHBvcnRlZFByb3BlcnRpZXMgYW5kIERlZmF1bHREZWZpbmVPd25Qcm9wZXJ0eSBl
eHRlbmRlZCBhdHRyaWJ1dGVzLAorICAgICAgICB3aGljaCBub3cgaGF2ZSBubyB1c2VycywgYW5k
IGFkZCB0aGUgQ1NTUHJvcGVydHkgZXh0ZW5kZWQgYXR0cmlidXRlLCB1c2VkIHRvIGF2b2lkIHVu
bmVjZXNzYXJ5CisgICAgICAgIGltcGxlbWVudGF0aW9uIG92ZXJoZWFkIGZvciBlYWNoIHByb3Bl
cnR5LiBSYXRoZXIsIGluIGFuIGFuYWxvZ291cyB3YXkgdG8gRXZlbnRIYW5kbGVycywgdGhlIGJp
bmRpbmdzCisgICAgICAgIG5vdyBkaXJlY3RseSBwYXNzIGluIHRoZSBhc3NvY2lhdGUgQ1NTUHJv
cGVydHlJRCB0byBhbiBhcHByb3ByaWF0ZSBDU1NTdHlsZURlY2xhcmF0aW9uIGZ1bmN0aW9uLgor
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAg
IChHZW5lcmF0ZUludm9rZU5hbWVkUHJvcGVydHlTZXR0ZXIpOgorICAgICAgICAoR2VuZXJhdGVQ
dXQpOgorICAgICAgICAoR2VuZXJhdGVQdXRCeUluZGV4KToKKyAgICAgICAgKEdlbmVyYXRlRGVm
aW5lT3duUHJvcGVydHkpOgorICAgICAgICBSZW1vdmUgYWxsIHVzZSBvZiBDYWxsTmFtZWRTZXR0
ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVydGllcy4KKyAgICAgICAgCisgICAgICAgIChNYW5nbGVB
dHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSk6CisgICAgICAgIChHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1l
KToKKyAgICAgICAgKEdldEF0dHJpYnV0ZVNldHRlck5hbWUpOgorICAgICAgICAoR2V0RnVuY3Rp
b25OYW1lKToKKyAgICAgICAgQWRkIGEgbGVhZGluZyB1bmRlcnNjb3JlIHRvIGFsbCBtYW5nbGVk
IGF0dHJpYnV0ZSBhbmQgZnVuY3Rpb24gbmFtZXMgYW5kIHJlbW92ZQorICAgICAgICBsZWFkaW5n
IGNhcGl0YWxpemF0aW9uLiBUaGlzIGFsbG93cyB1cyB0byBoYXZlIGF0dHJpYnV0ZXMgYW5kIGZ1
bmN0aW9ucyB3aXRoIHRoZQorICAgICAgICBzYW1lIG5hbWUgZXhjZXB0IGZvciB0aGUgY2FwaXRh
bGl6YXRpb24gb2YgdGhlIGZpcnN0IGxldHRlci4KKworICAgICAgICAoSW5zdGFuY2VPdmVycmlk
ZXNEZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciBEZWZhdWx0
RGVmaW5lT3duUHJvcGVydHksIHdoaWNoIGlzIG5vdyB1bnVzZWQuCisKKyAgICAgICAgKFRvTWV0
aG9kTmFtZSk6CisgICAgICAgIE1hdGNoIHRoZSBhY3R1YWwgc2V0dGluZyBuYW1lLCBhbmQgZG9u
J3QgdHJhbnNmb3JtIG5hbWVzIHRoYXQgc3RhcnQgd2l0aCBDU1NPTS4KKworICAgICAgICAoR2Vu
ZXJhdGVBdHRyaWJ1dGVHZXR0ZXJCb2R5RGVmaW5pdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUF0
dHJpYnV0ZVNldHRlckJvZHlEZWZpbml0aW9uKToKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRo
ZSBuZXcgQ1NTUHJvcGVydHkgZXh0ZW5kZWQgYXR0cmlidXRlIHdoaWNoIHVzZXMgdGhlIHBhc3Nz
ZWQKKyAgICAgICAgdmFsdWUgdG8gdG8gZGlyZWN0bHkgY2FsbCBDU1NTdHlsZURlY2xhcmF0aW9u
IGZ1bmN0aW9ucyB3aXRoIGEgQ1NTUHJvcGVydHlJRC4KKworICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0xvY2F0aW9u
Q3VzdG9tLmNwcDoKKyAgICAgICAgVXBkYXRlIGZvciBuZXcgYy1mdW5jdGlvbiBuYW1pbmcgY29u
dmVudGlvbi4KKworICAgICAgICAqIGNzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb246OnNldFByb3BlcnR5VmFsdWVJbnRlcm5h
bCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eVZh
bHVlSW50ZXJuYWxGb3JQb3NPclBpeGVsUHJlZml4ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
U3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFBy
ZWZpeGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb246OmdldENTU1By
b3BlcnR5SURGcm9tSmF2YVNjcmlwdFByb3BlcnR5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NTdHlsZURlY2xhcmF0aW9uOjpuYW1lZEl0ZW0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbjo6c2V0TmFtZWRJdGVtKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb246OnN1cHBvcnRlZFByb3BlcnR5TmFtZXMgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmg6CisgICAg
ICAgIFJlcGxhY2Ugb2xkIG5hbWVkIGdldHRlci9zZXR0ZXIgc3VwcG9ydCBjb2RlIHdpdGggbmV3
IGhlbHBlcnMgd2hpY2ggb3BlcmF0ZSBkaXJlY3RseQorICAgICAgICBvbiBDU1NQcm9wZXJ0eUlE
cy4KKworICAgICAgICAqIGNzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbDoKKyAgICAgICAgVXBk
YXRlIHRvIG1hdGNoIHRoZSBjdXJyZW50IHNwZWMgKGFsbW9zdCwgc3RpbGwgbmVlZCB0byBnZXRQ
cm9wZXJ0eVByaW9yaXR5IHRvIG5vdCByZXR1cm4KKyAgICAgICAgbnVsbCkgYW5kIHJlbW92ZSBj
dXN0b20gbmFtZWQgZ2V0dGVyL3NldHRlciBvcGVyYXRpb25zLgorCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTLyo6CisgICAgICAgIFVwZGF0ZSBiaW5kaW5ncyB0ZXN0IHJlc3Vs
dHMgZm9yIG5ldyBjLWZ1bmN0aW9uIG5hbWluZyBzY2hlbWUuCisKIDIwMjAtMTAtMTUgIEFudG9p
bmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXBkYXRpbmcgYW4gaW5k
aXZpZHVhbCB0cmFuc2Zvcm0gQ1NTIHByb3BlcnR5IGhhcyBubyB2aXN1YWwgY2hhbmdlIHdoZW4g
Y29tcG9zaXRlZApJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDI2ODU0NykKKysr
IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xODc5LDcg
KzE4NzksNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtXZWJDb3JlX0RFCiAKICMg
R2VuZXJhdGUgQ1NTIHByb3BlcnR5IG5hbWVzCiBhZGRfY3VzdG9tX2NvbW1hbmQoCi0gICAgT1VU
UFVUICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0aWVzLmpzb24gJHtX
ZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1Byb3BlcnR5TmFtZXMuaCAke1dlYkNvcmVf
REVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5jcHAgJHtXZWJDb3JlX0RFUklW
RURfU09VUkNFU19ESVJ9L0NTU1Byb3BlcnR5TmFtZXMuZ3BlcmYgJHtXZWJDb3JlX0RFUklWRURf
U09VUkNFU19ESVJ9L1N0eWxlQnVpbGRlckdlbmVyYXRlZC5jcHAgJHtXZWJDb3JlX0RFUklWRURf
U09VUkNFU19ESVJ9L1N0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuaCAke1dlYkNvcmVf
REVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5jcHAK
KyAgICBPVVRQVVQgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1Byb3BlcnRpZXMu
anNvbiAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5oICR7
V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVzLmNwcCAke1dlYkNv
cmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5ncGVyZiAke1dlYkNvcmVf
REVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVCdWlsZGVyR2VuZXJhdGVkLmNwcCAke1dlYkNvcmVf
REVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5oICR7
V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rp
b25zLmNwcCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTU3R5bGVEZWNsYXJhdGlv
bitQcm9wZXJ0eU5hbWVzLmlkbAogICAgIE1BSU5fREVQRU5ERU5DWSAke1dFQkNPUkVfRElSfS9j
c3MvbWFrZXByb3AucGwKICAgICBERVBFTkRTICR7V2ViQ29yZV9DU1NfUFJPUEVSVFlfTkFNRVN9
CiAgICAgV09SS0lOR19ESVJFQ1RPUlkgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9CkBA
IC0xODg5LDYgKzE4ODksNyBAQCBhZGRfY3VzdG9tX2NvbW1hbmQoCiBsaXN0KEFQUEVORCBXZWJD
b3JlX1NPVVJDRVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1Byb3BlcnR5TmFt
ZXMuY3BwKQogbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTICR7V2ViQ29yZV9ERVJJVkVEX1NP
VVJDRVNfRElSfS9TdHlsZUJ1aWxkZXJHZW5lcmF0ZWQuY3BwKQogbGlzdChBUFBFTkQgV2ViQ29y
ZV9TT1VSQ0VTICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZVByb3BlcnR5U2hv
cnRoYW5kRnVuY3Rpb25zLmNwcCkKK2xpc3QoQVBQRU5EIFdlYkNvcmVfSURMX0ZJTEVTICR7V2Vi
Q29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFt
ZXMuaWRsKQogQUREX1NPVVJDRV9XRUJDT1JFX0RFUklWRURfREVQRU5ERU5DSUVTKCR7V0VCQ09S
RV9ESVJ9L2Nzcy9DU1NQYXJzZXIuY3BwIENTU1ZhbHVlS2V5d29yZHMuaCkKIAogIyBHZW5lcmF0
ZSBDU1MgdmFsdWUga2V5d29yZHMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAyNjg1NDcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAkod29ya2luZyBjb3B5KQpAQCAt
Myw2ICszLDcgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYgogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQnl0ZUxlbmd0aFF1ZXVp
bmdTdHJhdGVneUJ1aWx0aW5zLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0NTU1Byb3BlcnR5TmFtZXMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9DU1NQcm9wZXJ0eU5hbWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlO
YW1lcy5pZGwKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NT
U1ZhbHVlS2V5d29yZHMuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9DU1NWYWx1ZUtleXdvcmRzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0NvbG9yRGF0YS5jcHAKQEAgLTI5MCw2ICsyOTEsOCBAQCAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU1J1bGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NSdWxlTGlzdC5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTUnVsZUxpc3QuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NTdHlsZURlY2xhcmF0aW9u
K1Byb3BlcnR5TmFtZXMuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0NTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU1N0eWxlRGVjbGFyYXRpb24u
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU1N0
eWxlRGVjbGFyYXRpb24uaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNDU1NTdHlsZVJ1bGUuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UJKHJldmlzaW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UJKHdvcmtpbmcgY29weSkKQEAgLTEzMjcsNiArMTMyNyw3IEBAIEpTX0JJTkRJTkdfSURMUyA9
IFwKICAgICAkKFdlYkNvcmUpL3htbC9YUGF0aFJlc3VsdC5pZGwgXAogICAgICQoV2ViQ29yZSkv
eG1sL1hTTFRQcm9jZXNzb3IuaWRsIFwKICAgICBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmlk
bCBcCisgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbitQcm9wZXJ0eU5hbWVzLmlkbCBcCiAjCiAKICMg
LS0tLS0tLS0KQEAgLTE0MTgsNiArMTQxOSw3IEBAIGFsbCA6IFwKICAgICBTdHlsZUJ1aWxkZXJH
ZW5lcmF0ZWQuY3BwIFwKICAgICBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmNwcCBc
CiAgICAgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5oIFwKKyAgICBDU1NTdHlsZURl
Y2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsIFwKICAgICBVc2VyQWdlbnRTdHlsZVNoZWV0cy5o
IFwKICAgICBXZWJLaXRGb250RmFtaWx5TmFtZXMuY3BwIFwKICAgICBXZWJLaXRGb250RmFtaWx5
TmFtZXMuaCBcCkBAIC0xNDQ1LDYgKzE0NDcsNyBAQCBDU1NfUFJPUEVSVFlfTkFNRV9GSUxFUyA9
IFwKICAgICBTdHlsZUJ1aWxkZXJHZW5lcmF0ZWQuY3BwIFwKICAgICBTdHlsZVByb3BlcnR5U2hv
cnRoYW5kRnVuY3Rpb25zLmNwcCBcCiAgICAgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9u
cy5oIFwKKyAgICBDU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsIFwKICMKIENT
U19QUk9QRVJUWV9OQU1FX0ZJTEVTX1BBVFRFUk5TID0gJChzdWJzdCAuLCUsJChDU1NfUFJPUEVS
VFlfTkFNRV9GSUxFUykpCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAJKHJldmlzaW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjMsOCArNjMsOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IAotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25T
aG93TW9kYWxEaWFsb2cpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0RPTVdpbmRvd0lu
c3RhbmNlRnVuY3Rpb25PcGVuRGF0YWJhc2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25fc2hvd01vZGFsRGlhbG9nKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uX29wZW5EYXRhYmFzZSk7
CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1JlbW90ZURPTVdpbmRvd0luc3Rh
bmNlRnVuY3Rpb25CbHVyTm9uQ2FjaGluZyk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25CbHVyTm9uQ2FjaGluZyk7CiBzdGF0aWMg
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1JlbW90ZURPTVdpbmRvd0luc3RhbmNlRnVuY3Rp
b25DbG9zZU5vbkNhY2hpbmcpOwpAQCAtNzksNDIgKzc5LDQyIEBAIHN0YXRpYyBKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzRE9NV2kKIAogSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzUmVt
b3RlRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvbkJsdXJOb25DYWNoaW5nLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUpKQogewotICAgIHJldHVybiBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXJJbXBsPGpz
UmVtb3RlRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvbkJsdXIsIDA+KGdsb2JhbE9iamVjdCwgcHJv
cGVydHlOYW1lKTsKKyAgICByZXR1cm4gbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVySW1w
bDxqc1JlbW90ZURPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25fYmx1ciwgMD4oZ2xvYmFsT2JqZWN0
LCBwcm9wZXJ0eU5hbWUpOwogfQogCiBKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNET01XaW5k
b3dJbnN0YW5jZUZ1bmN0aW9uQmx1ck5vbkNhY2hpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkpCiB7Ci0g
ICAgcmV0dXJuIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlckltcGw8anNET01XaW5kb3dJ
bnN0YW5jZUZ1bmN0aW9uQmx1ciwgMD4oZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpOworICAg
IHJldHVybiBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXJJbXBsPGpzRE9NV2luZG93SW5z
dGFuY2VGdW5jdGlvbl9ibHVyLCAwPihnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7CiB9CiAK
IEpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1JlbW90ZURPTVdpbmRvd0luc3RhbmNlRnVuY3Rp
b25DbG9zZU5vbkNhY2hpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIG5vbkNh
Y2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlckltcGw8anNSZW1vdGVET01XaW5kb3dJbnN0YW5jZUZ1
bmN0aW9uQ2xvc2UsIDA+KGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4g
bm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVySW1wbDxqc1JlbW90ZURPTVdpbmRvd0luc3Rh
bmNlRnVuY3Rpb25fY2xvc2UsIDA+KGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsKIH0KIAog
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvbkNsb3Nl
Tm9uQ2FjaGluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gbm9uQ2FjaGluZ1N0
YXRpY0Z1bmN0aW9uR2V0dGVySW1wbDxqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25DbG9zZSwg
MD4oZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiBub25DYWNoaW5nU3Rh
dGljRnVuY3Rpb25HZXR0ZXJJbXBsPGpzRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvbl9jbG9zZSwg
MD4oZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpOwogfQogCiBKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNSZW1vdGVET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uRm9jdXNOb25DYWNoaW5nLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25H
ZXR0ZXJJbXBsPGpzUmVtb3RlRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvbkZvY3VzLCAwPihnbG9i
YWxPYmplY3QsIHByb3BlcnR5TmFtZSk7CisgICAgcmV0dXJuIG5vbkNhY2hpbmdTdGF0aWNGdW5j
dGlvbkdldHRlckltcGw8anNSZW1vdGVET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uX2ZvY3VzLCAw
PihnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7CiB9CiAKIEpTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25Gb2N1c05vbkNhY2hpbmcsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcklt
cGw8anNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uRm9jdXMsIDA+KGdsb2JhbE9iamVjdCwgcHJv
cGVydHlOYW1lKTsKKyAgICByZXR1cm4gbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVySW1w
bDxqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25fZm9jdXMsIDA+KGdsb2JhbE9iamVjdCwgcHJv
cGVydHlOYW1lKTsKIH0KIAogSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzUmVtb3RlRE9NV2lu
ZG93SW5zdGFuY2VGdW5jdGlvblBvc3RNZXNzYWdlTm9uQ2FjaGluZywgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
KSkKIHsKLSAgICByZXR1cm4gbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVySW1wbDxqc1Jl
bW90ZURPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25Qb3N0TWVzc2FnZSwgMD4oZ2xvYmFsT2JqZWN0
LCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0
ZXJJbXBsPGpzUmVtb3RlRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvbl9wb3N0TWVzc2FnZSwgMD4o
Z2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpOwogfQogCiBKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uUG9zdE1lc3NhZ2VOb25DYWNoaW5nLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0
ZXJJbXBsPGpzRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvblBvc3RNZXNzYWdlLCAyPihnbG9iYWxP
YmplY3QsIHByb3BlcnR5TmFtZSk7CisgICAgcmV0dXJuIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlv
bkdldHRlckltcGw8anNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uX3Bvc3RNZXNzYWdlLCAyPihn
bG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7CiB9CiAKIHZvaWQgSlNET01XaW5kb3c6OnZpc2l0
QWRkaXRpb25hbENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQpAQCAtMjU2LDcgKzI1Niw3
IEBAIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdChKU08KICAgICAgICAgLy8g
RGV0ZWN0IHdoZW4gd2UncmUgZ2V0dGluZyB0aGUgcHJvcGVydHkgJ3Nob3dNb2RhbERpYWxvZycs
IHRoaXMgaXMgZGlzYWJsZWQsIGFuZCBoYXMgaXRzIG9yaWdpbmFsIHZhbHVlLgogICAgICAgICBi
b29sIGlzU2hvd01vZGFsRGlhbG9nQW5kU2hvdWxkSGlkZSA9IHByb3BlcnR5TmFtZSA9PSBzdGF0
aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCkuY2xpZW50
RGF0YSktPmJ1aWx0aW5OYW1lcygpLnNob3dNb2RhbERpYWxvZ1B1YmxpY05hbWUoKQogICAgICAg
ICAgICAgJiYgKCFmcmFtZSB8fCAhRE9NV2luZG93OjpjYW5TaG93TW9kYWxEaWFsb2coKmZyYW1l
KSkKLSAgICAgICAgICAgICYmIHNsb3QuaXNWYWx1ZSgpICYmIGlzSG9zdEZ1bmN0aW9uKHNsb3Qu
Z2V0VmFsdWUobGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKSwganNET01XaW5kb3dJ
bnN0YW5jZUZ1bmN0aW9uU2hvd01vZGFsRGlhbG9nKTsKKyAgICAgICAgICAgICYmIHNsb3QuaXNW
YWx1ZSgpICYmIGlzSG9zdEZ1bmN0aW9uKHNsb3QuZ2V0VmFsdWUobGV4aWNhbEdsb2JhbE9iamVj
dCwgcHJvcGVydHlOYW1lKSwganNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uX3Nob3dNb2RhbERp
YWxvZyk7CiAgICAgICAgIC8vIFVubGVzcyB3ZSdyZSBpbiB0aGUgc2hvd01vZGFsRGlhbG9nIHNw
ZWNpYWwgY2FzZSwgd2UncmUgZG9uZS4KICAgICAgICAgaWYgKCFpc1Nob3dNb2RhbERpYWxvZ0Fu
ZFNob3VsZEhpZGUpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTY0Nyw3ICs2NDcsNyBA
QCBKU1ZhbHVlIEpTRE9NV2luZG93OjpmcmFtZXMoSlNDOjpKU0dsb2JhCiAgICAgcmV0dXJuIGds
b2JhbFRoaXMoKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzRE9N
V2luZG93SW5zdGFuY2VGdW5jdGlvbk9wZW5EYXRhYmFzZUJvZHkoSlNDOjpKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElE
TE9wZXJhdGlvbjxKU0RPTVdpbmRvdz46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9u
X29wZW5EYXRhYmFzZUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU0RPTVdpbmRv
dz46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBsZXhpY2Fs
R2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtNjg0LDkgKzY4NCw5IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTRE9NV2lu
ZG93KiBJRExPcGVyYXQKICAgICByZXR1cm4gdG9KU0RPTVdpbmRvdyhsZXhpY2FsR2xvYmFsT2Jq
ZWN0LnZtKCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKS50b1RoaXMoJmxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTQzo6RUNNQU1vZGU6OnNsb3BweSgpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25PcGVuRGF0YWJhc2UsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uX29wZW5EYXRhYmFzZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTRE9NV2luZG93Pjo6Y2FsbDxqc0RPTVdpbmRvd0luc3Rh
bmNlRnVuY3Rpb25PcGVuRGF0YWJhc2VCb2R5PigqZ2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
b3BlbkRhdGFiYXNlIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU0RPTVdpbmRvdz46OmNh
bGw8anNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uX29wZW5EYXRhYmFzZUJvZHk+KCpnbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJvcGVuRGF0YWJhc2UiKTsKIH0KIAogSlNWYWx1ZSBKU0RPTVdp
bmRvdzo6b3BlbkRhdGFiYXNlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QpIGNvbnN0CkBAIC02OTQsOSArNjk0LDkgQEAgSlNWYWx1ZSBKU0RPTVdpbmRvdzo6b3BlbkRh
dGFiYXNlKEpTQzo6SgogICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKICAg
ICBTdHJpbmdJbXBsKiBuYW1lID0gUHJvcGVydHlOYW1lKHN0YXRpY19jYXN0PEpTVk1DbGllbnRE
YXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLm9wZW5EYXRhYmFzZVB1YmxpY05h
bWUoKSkucHVibGljTmFtZSgpOwogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLndlYlNRTEVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIEpTRnVuY3Rpb246
OmNyZWF0ZSh2bSwgJmxleGljYWxHbG9iYWxPYmplY3QsIDQsIG5hbWUsIGpzRE9NV2luZG93SW5z
dGFuY2VGdW5jdGlvbk9wZW5EYXRhYmFzZSwgTm9JbnRyaW5zaWMpOworICAgICAgICByZXR1cm4g
SlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCAmbGV4aWNhbEdsb2JhbE9iamVjdCwgNCwgbmFtZSwganNE
T01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uX29wZW5EYXRhYmFzZSwgTm9JbnRyaW5zaWMpOwogCi0g
ICAgcmV0dXJuIEludGVybmFsRnVuY3Rpb246OmNyZWF0ZUZ1bmN0aW9uVGhhdE1hc3F1ZXJhZGVz
QXNVbmRlZmluZWQodm0sICZsZXhpY2FsR2xvYmFsT2JqZWN0LCA0LCBuYW1lLCBqc0RPTVdpbmRv
d0luc3RhbmNlRnVuY3Rpb25PcGVuRGF0YWJhc2UpOworICAgIHJldHVybiBJbnRlcm5hbEZ1bmN0
aW9uOjpjcmVhdGVGdW5jdGlvblRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkKHZtLCAmbGV4aWNh
bEdsb2JhbE9iamVjdCwgNCwgbmFtZSwganNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uX29wZW5E
YXRhYmFzZSk7CiB9CiAKIHZvaWQgSlNET01XaW5kb3c6OnNldE9wZW5EYXRhYmFzZShKU0M6OkpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgdmFsdWUpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNw
cAkocmV2aXNpb24gMjY4NTQ3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNMb2Nh
dGlvbkN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAgc3RhdGljIEpT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNMb2NhdAogCiBKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNMb2NhdGlvbkluc3RhbmNlRnVuY3Rpb25SZXBsYWNlTm9uQ2FjaGluZywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lKSkKIHsKLSAgICByZXR1cm4gbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVySW1w
bDxqc0xvY2F0aW9uSW5zdGFuY2VGdW5jdGlvblJlcGxhY2UsIDE+KGdsb2JhbE9iamVjdCwgcHJv
cGVydHlOYW1lKTsKKyAgICByZXR1cm4gbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVySW1w
bDxqc0xvY2F0aW9uSW5zdGFuY2VGdW5jdGlvbl9yZXBsYWNlLCAxPihnbG9iYWxPYmplY3QsIHBy
b3BlcnR5TmFtZSk7CiB9CiAKIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdENvbW1vbihK
U0xvY2F0aW9uJiB0aGlzT2JqZWN0LCBKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0JKHJldmlzaW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xMTg3LDE1ICsxMTg3LDEyIEBA
IHN1YiBHZW5lcmF0ZUludm9rZU5hbWVkUHJvcGVydHlTZXR0ZXIKICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICRpbmRlbnQgLiAiYXV0byBuYXRpdmVWYWx1ZSA9ICR7bmF0aXZlVmFsdWV9O1xuIik7
CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gIlJFVFVSTl9JRl9FWENFUFRJT04o
dGhyb3dTY29wZSwgdHJ1ZSk7XG4iKTsKIAotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVu
dCAuICJib29sIGlzUHJvcGVydHlTdXBwb3J0ZWQgPSB0cnVlO1xuIikgaWYgJG5hbWVkU2V0dGVy
T3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDYWxsTmFtZWRTZXR0ZXJPbmx5Rm9yU3Vw
cG9ydGVkUHJvcGVydGllc307Ci0KICAgICBteSAkbmFtZWRTZXR0ZXJGdW5jdGlvbk5hbWUgPSAk
bmFtZWRTZXR0ZXJPcGVyYXRpb24tPm5hbWUgfHwgInNldE5hbWVkSXRlbSI7CiAgICAgbXkgJG5h
dGl2ZVZhbHVlUGFzc0V4cHJlc3Npb24gPSBQYXNzQXJndW1lbnRFeHByZXNzaW9uKCJuYXRpdmVW
YWx1ZSIsICRhcmd1bWVudCk7CiAKICAgICBteSBAYXJndW1lbnRzID0gKCk7CiAgICAgcHVzaChA
YXJndW1lbnRzLCAicHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSIpOwogICAgIHB1
c2goQGFyZ3VtZW50cywgJG5hdGl2ZVZhbHVlUGFzc0V4cHJlc3Npb24pOwotICAgIHB1c2goQGFy
Z3VtZW50cywgImlzUHJvcGVydHlTdXBwb3J0ZWQiKSBpZiAkbmFtZWRTZXR0ZXJPcGVyYXRpb24t
PmV4dGVuZGVkQXR0cmlidXRlcy0+e0NhbGxOYW1lZFNldHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9w
ZXJ0aWVzfTsKIAogICAgIG15ICRmdW5jdGlvblN0cmluZyA9ICJ0aGlzT2JqZWN0LT53cmFwcGVk
KCkuJHtuYW1lZFNldHRlckZ1bmN0aW9uTmFtZX0oIiAuIGpvaW4oIiwgIiwgQGFyZ3VtZW50cykg
LiAiKSI7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gImludm9rZUZ1bmN0b3JQ
cm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBbJl0geyByZXR1cm4gJHtmdW5jdGlvblN0cmluZ307IH0pO1xuIik7CkBAIC0xMjUw
LDEwICsxMjQ3LDYgQEAgc3ViIEdlbmVyYXRlUHV0CiAgICAgICAgIH0KIAogICAgICAgICBHZW5l
cmF0ZUludm9rZU5hbWVkUHJvcGVydHlTZXR0ZXIoJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbElu
ZGVudCAuICIgICAgICAgICIsICRpbnRlcmZhY2UsICRuYW1lZFNldHRlck9wZXJhdGlvbiwgInZh
bHVlIik7Ci0gICAgICAgIGlmICgkbmFtZWRTZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmli
dXRlcy0+e0NhbGxOYW1lZFNldHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9wZXJ0aWVzfSkgewotICAg
ICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgICAg
IGlmICghaXNQcm9wZXJ0eVN1cHBvcnRlZClcbiIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgICAgICAgICByZXR1cm4gSlNPYmplY3Q6
OnB1dCh0aGlzT2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBwdXRQcm9wZXJ0eVNsb3QpO1xuIik7Ci0gICAgICAgIH0KICAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAK
ICAgICAgICAgaWYgKCEkbGVnYWN5T3ZlcnJpZGVCdWlsdGlucykgewpAQCAtMTI4Niw3ICsxMjc5
LDcgQEAgc3ViIEdlbmVyYXRlUHV0QnlJbmRleAogICAgIG15ICRpbmRleGVkU2V0dGVyT3BlcmF0
aW9uID0gR2V0SW5kZXhlZFNldHRlck9wZXJhdGlvbigkaW50ZXJmYWNlKTsKICAgICAKICAgICBt
eSAkbGVnYWN5T3ZlcnJpZGVCdWlsdGlucyA9ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0V4dGVu
ZGVkQXR0cmlidXRlKCRpbnRlcmZhY2UsICJMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIik7Ci0gICAg
bXkgJGVsbGlkZXNDYWxsc1RvQmFzZSA9ICgkbmFtZWRTZXR0ZXJPcGVyYXRpb24gJiYgJGxlZ2Fj
eU92ZXJyaWRlQnVpbHRpbnMpICYmICEkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntQ
bHVnaW59ICYmICEkbmFtZWRTZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e0Nh
bGxOYW1lZFNldHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9wZXJ0aWVzfTsKKyAgICBteSAkZWxsaWRl
c0NhbGxzVG9CYXNlID0gKCRuYW1lZFNldHRlck9wZXJhdGlvbiAmJiAkbGVnYWN5T3ZlcnJpZGVC
dWlsdGlucykgJiYgISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e1BsdWdpbn07CiAg
ICAgCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiYm9vbCAke2NsYXNzTmFtZX06OnB1dEJ5SW5k
ZXgoSlNDZWxsKiBjZWxsLCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgdW5z
aWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wiIC4gKCEkZWxsaWRlc0NhbGxzVG9CYXNl
ID8gIiBzaG91bGRUaHJvdyIgOiAiIikgLiAiKVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAie1xuIik7CkBAIC0xMzI4LDEwICsxMzIxLDYgQEAgc3ViIEdlbmVyYXRlUHV0QnlJbmRleAog
ICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBHZW5lcmF0ZUludm9rZU5hbWVkUHJvcGVydHlT
ZXR0ZXIoJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgIiwgJGludGVyZmFj
ZSwgJG5hbWVkU2V0dGVyT3BlcmF0aW9uLCAidmFsdWUiKTsKLSAgICAgICAgaWYgKCRuYW1lZFNl
dHRlck9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q2FsbE5hbWVkU2V0dGVyT25seUZv
clN1cHBvcnRlZFByb3BlcnRpZXN9KSB7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICRhZGRpdGlvbmFsSW5kZW50IC4gIiAgICBpZiAoIWlzUHJvcGVydHlTdXBwb3J0ZWQpXG4iKTsK
LSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGFkZGl0aW9uYWxJbmRlbnQgLiAiICAg
ICAgICByZXR1cm4gSlNPYmplY3Q6OnB1dEJ5SW5kZXgoY2VsbCwgbGV4aWNhbEdsb2JhbE9iamVj
dCwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7XG4iKTsKLSAgICAgICAgfQogICAgICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50IC4gIiAgICByZXR1cm4gdHJ1ZTtc
biIpOwogICAgICAgICAKICAgICAgICAgaWYgKCEkbGVnYWN5T3ZlcnJpZGVCdWlsdGlucykgewpA
QCAtMTQ3NSwxMCArMTQ2NCw3IEBAIHN1YiBHZW5lcmF0ZURlZmluZU93blByb3BlcnR5CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgICMgMi4yLjIuIEludm9rZSB0aGUgbmFtZWQgcHJvcGVydHkg
c2V0dGVyIHdpdGggUCBhbmQgRGVzYy5bW1ZhbHVlXV0uCiAgICAgICAgICAgICBHZW5lcmF0ZUlu
dm9rZU5hbWVkUHJvcGVydHlTZXR0ZXIoJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAu
ICIgICAgICAgICIsICRpbnRlcmZhY2UsICRuYW1lZFNldHRlck9wZXJhdGlvbiwgInByb3BlcnR5
RGVzY3JpcHRvci52YWx1ZSgpIik7Ci0gICAgICAgICAgICBpZiAoJG5hbWVkU2V0dGVyT3BlcmF0
aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDYWxsTmFtZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVk
UHJvcGVydGllc30pIHsKLSAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRp
dGlvbmFsSW5kZW50IC4gIiAgICBpZiAoIWlzUHJvcGVydHlTdXBwb3J0ZWQpXG4iKTsKLSAgICAg
ICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50IC4gIiAgICAg
ICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxHbG9i
YWxPYmplY3QsIHByb3BlcnR5TmFtZSwgcHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7
XG4iKTsKLSAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgIyAyLjIuMy4gUmV0dXJuIHRydWUu
CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50IC4gIiAg
ICAgICAgcmV0dXJuIHRydWU7XG4iKTsKICAgICAgICAgfQpAQCAtMTg1Myw3ICsxODM5LDcgQEAg
c3ViIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lCiAKICAgICAkbmFtZSA9fiBzLy0vX2Rh
c2hfL2c7CiAKLSAgICByZXR1cm4gJG5hbWU7CisgICAgcmV0dXJuICRuYW1lID1+IC9eXy8gPyAk
bmFtZSA6ICdfJyAuICRuYW1lOwogfQogCiBzdWIgR2V0QXR0cmlidXRlR2V0dGVyTmFtZQpAQCAt
MTg2MSw5ICsxODQ3LDkgQEAgc3ViIEdldEF0dHJpYnV0ZUdldHRlck5hbWUKICAgICBteSAoJGlu
dGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSkgPSBAXzsKIAogICAgIHJldHVybiBHZXRK
U0J1aWx0aW5GdW5jdGlvbk5hbWUoJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSkgaWYgSXNKU0J1aWx0
aW4oJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7Ci0gICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5X
S19sY2ZpcnN0KCRjbGFzc05hbWUpIC4gIkNvbnN0cnVjdG9yIiAuICRjb2RlR2VuZXJhdG9yLT5X
S191Y2ZpcnN0KE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUp
KSBpZiAkYXR0cmlidXRlLT5pc1N0YXRpYzsKLSAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldL
X2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdChNYW5nbGVB
dHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSkgLiAiQ29uc3RydWN0b3Ii
IGlmICRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVHlwZSgkYXR0cmlidXRlLT50eXBlKTsK
LSAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAkY29k
ZUdlbmVyYXRvci0+V0tfdWNmaXJzdChNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0
cmlidXRlLT5uYW1lKSk7CisgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRj
bGFzc05hbWUpIC4gIkNvbnN0cnVjdG9yIiAuIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1l
KCRhdHRyaWJ1dGUtPm5hbWUpIGlmICRhdHRyaWJ1dGUtPmlzU3RhdGljOworICAgIHJldHVybiAk
Y29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkY2xhc3NOYW1lKSAuIE1hbmdsZUF0dHJpYnV0ZU9y
RnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpIC4gIkNvbnN0cnVjdG9yIiBpZiAkY29kZUdl
bmVyYXRvci0+SXNDb25zdHJ1Y3RvclR5cGUoJGF0dHJpYnV0ZS0+dHlwZSk7CisgICAgcmV0dXJu
ICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUpIC4gTWFuZ2xlQXR0cmlidXRl
T3JGdW5jdGlvbk5hbWUoJGF0dHJpYnV0ZS0+bmFtZSk7CiB9CiAKIHN1YiBHZXRBdHRyaWJ1dGVT
ZXR0ZXJOYW1lCkBAIC0xODcxLDkgKzE4NTcsOSBAQCBzdWIgR2V0QXR0cmlidXRlU2V0dGVyTmFt
ZQogICAgIG15ICgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKSA9IEBfOwogCiAg
ICAgcmV0dXJuICJzZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoR2V0SlNCdWlsdGlu
RnVuY3Rpb25OYW1lKCRjbGFzc05hbWUsICRhdHRyaWJ1dGUpKSBpZiBJc0pTQnVpbHRpbigkaW50
ZXJmYWNlLCAkYXR0cmlidXRlKTsKLSAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+
V0tfdWNmaXJzdCgkY2xhc3NOYW1lKSAuICJDb25zdHJ1Y3RvciIgLiAkY29kZUdlbmVyYXRvci0+
V0tfdWNmaXJzdChNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1l
KSkgaWYgJGF0dHJpYnV0ZS0+aXNTdGF0aWM7Ci0gICAgcmV0dXJuICJzZXQiIC4gJGNvZGVHZW5l
cmF0b3ItPldLX3VjZmlyc3QoJGNsYXNzTmFtZSkgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJz
dChNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSkgLiAiQ29u
c3RydWN0b3IiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVHlwZSgkYXR0cmlidXRl
LT50eXBlKTsKLSAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgk
Y2xhc3NOYW1lKSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KE1hbmdsZUF0dHJpYnV0ZU9y
RnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUtPm5hbWUpKTsKKyAgICByZXR1cm4gInNldCIgLiAkY29k
ZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkY2xhc3NOYW1lKSAuICJDb25zdHJ1Y3RvciIgLiBNYW5n
bGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgkYXR0cmlidXRlLT5uYW1lKSBpZiAkYXR0cmlidXRl
LT5pc1N0YXRpYzsKKyAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJz
dCgkY2xhc3NOYW1lKSAuIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRhdHRyaWJ1dGUt
Pm5hbWUpIC4gIkNvbnN0cnVjdG9yIiBpZiAkY29kZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3RvclR5
cGUoJGF0dHJpYnV0ZS0+dHlwZSk7CisgICAgcmV0dXJuICJzZXQiIC4gJGNvZGVHZW5lcmF0b3It
PldLX3VjZmlyc3QoJGNsYXNzTmFtZSkgLiBNYW5nbGVBdHRyaWJ1dGVPckZ1bmN0aW9uTmFtZSgk
YXR0cmlidXRlLT5uYW1lKTsKIH0KIAogc3ViIEdldEZ1bmN0aW9uTmFtZQpAQCAtMTg4Niw3ICsx
ODcyLDcgQEAgc3ViIEdldEZ1bmN0aW9uTmFtZQogICAgICRmdW5jdGlvbk5hbWUgPSAiU3ltYm9s
SXRlcmF0b3IiIGlmICRmdW5jdGlvbk5hbWUgZXEgIltTeW1ib2wuSXRlcmF0b3JdIjsKIAogICAg
IG15ICRraW5kID0gJG9wZXJhdGlvbi0+aXNTdGF0aWMgPyAiQ29uc3RydWN0b3IiIDogKE9wZXJh
dGlvblNob3VsZEJlT25JbnN0YW5jZSgkaW50ZXJmYWNlLCAkb3BlcmF0aW9uKSA/ICJJbnN0YW5j
ZSIgOiAiUHJvdG90eXBlIik7Ci0gICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0
KCRjbGFzc05hbWUpIC4gJGtpbmQgLiAiRnVuY3Rpb24iIC4gJGNvZGVHZW5lcmF0b3ItPldLX3Vj
Zmlyc3QoTWFuZ2xlQXR0cmlidXRlT3JGdW5jdGlvbk5hbWUoJGZ1bmN0aW9uTmFtZSkpOworICAg
IHJldHVybiAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkY2xhc3NOYW1lKSAuICRraW5kIC4g
IkZ1bmN0aW9uIiAuIE1hbmdsZUF0dHJpYnV0ZU9yRnVuY3Rpb25OYW1lKCRmdW5jdGlvbk5hbWUp
OwogfQogCiBzdWIgR2V0RnVsbHlRdWFsaWZpZWRJbXBsZW1lbnRhdGlvbkNhbGxOYW1lCkBAIC0y
MjA0LDggKzIxOTAsNiBAQCBzdWIgSW5zdGFuY2VPdmVycmlkZXNEZWZpbmVPd25Qcm9wZXJ0eQog
ewogICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKIAotICAgIHJldHVybiAwIGlmICRpbnRlcmZh
Y2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0RlZmF1bHREZWZpbmVPd25Qcm9wZXJ0eX07Ci0KICAg
ICByZXR1cm4gJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tRGVmaW5lT3du
UHJvcGVydHl9CiAgICAgICAgIHx8IEdldEluZGV4ZWRTZXR0ZXJPcGVyYXRpb24oJGludGVyZmFj
ZSkKICAgICAgICAgfHwgR2V0TmFtZWRTZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSk7CkBAIC0z
OTc5LDYgKzM5NjMsOSBAQCBzdWIgR2V0U2tpcFZUYWJsZVZhbGlkYXRpb25Gb3JJbnRlcmZhY2UK
IHN1YiBUb01ldGhvZE5hbWUKIHsKICAgICBteSAkcGFyYW0gPSBzaGlmdDsKKyAgICAKKyAgICBy
ZXR1cm4gJHBhcmFtIGlmICRwYXJhbSA9fiAvXkNTU09NLzsKKwogICAgIG15ICRyZXQgPSBsY2Zp
cnN0KCRwYXJhbSk7CiAgICAgJHJldCA9fiBzL2NTUy9jc3MvIGlmICRyZXQgPX4gL15jU1MvOwog
ICAgICRyZXQgPX4gcy9kT00vZG9tLyBpZiAkcmV0ID1+IC9eZE9NLzsKQEAgLTUzMjIsNiArNTMw
OSwxNSBAQCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVHZXR0ZXJCb2R5RGVmaW5pdGlvCiAgICAgICAg
ICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlMiIC4gJGNvbnN0cnVjdG9yVHlwZSAuICIuaCIsICRj
b25kaXRpb25hbCk7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJu
IEpTIiAuICRjb25zdHJ1Y3RvclR5cGUgLiAiOjoke2NvbnN0cnVjdG9yR2V0dGVyfShKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7XG4i
KTsKICAgICAgICAgfQorICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+e0NTU1Byb3BlcnR5fSkgeworICAgICAgICAkaW1wbEluY2x1ZGVzeyJDU1NQcm9wZXJ0eU5h
bWVzLmgifSA9IDE7CisgICAgICAgIG15ICRwcm9wZXJ0eUlEID0gJGF0dHJpYnV0ZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Q1NTUHJvcGVydHl9OworICAgICAgICAKKyAgICAgICAgbXkgJGdldHRl
ck5hbWUgPSAkYXR0cmlidXRlLT50eXBlLT5pc1VuaW9uID8gImdldFByb3BlcnR5VmFsdWVJbnRl
cm5hbEZvclBvc09yUGl4ZWxQcmVmaXhlZCIgOiAiZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsIjsK
KyAgICAgICAgCisgICAgICAgIG15ICR0b0pTRXhwcmVzc2lvbiA9IE5hdGl2ZVRvSlNWYWx1ZVVz
aW5nUmVmZXJlbmNlcygkYXR0cmlidXRlLCAkaW50ZXJmYWNlLCAiaW1wbC4ke2dldHRlck5hbWV9
KENTU1Byb3BlcnR5JHtwcm9wZXJ0eUlEfSkiLCAiKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCki
KTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8mIGltcGwgPSB0aGlzT2Jq
ZWN0LndyYXBwZWQoKTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICgke3RvSlNFeHByZXNzaW9ufSkpO1xuIik7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
e0NhY2hlZEF0dHJpYnV0ZX0pIHsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICBpZiAoSlNWYWx1ZSBjYWNoZWRWYWx1ZSA9IHRoaXNPYmplY3QubV8iIC4gJGF0dHJpYnV0ZS0+
bmFtZSAuICIuZ2V0KCkpXG4iKTsKQEAgLTU0NjYsNiArNTQ2MiwyMyBAQCBzdWIgR2VuZXJhdGVB
dHRyaWJ1dGVTZXR0ZXJCb2R5RGVmaW5pdGlvCiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICB2bS5oZWFwLndyaXRlQmFycmllcigmdGhpc09iamVjdCwgdmFsdWUpO1xuIik7CiAgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBlbnN1cmVTdGlsbEFsaXZlSGVyZSh2YWx1ZSk7
XG5cbiIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIHRydWU7XG4i
KTsKKyAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDU1NQcm9w
ZXJ0eX0pIHsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siQ1NTUHJvcGVydHlOYW1lcy5oIn0gPSAx
OworCisgICAgICAgIG15ICRwcm9wZXJ0eUlEID0gJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57Q1NTUHJvcGVydHl9OworICAgICAgICAKKyAgICAgICAgbXkgJHNldHRlck5hbWUgPSAk
YXR0cmlidXRlLT50eXBlLT5pc1VuaW9uID8gInNldFByb3BlcnR5VmFsdWVJbnRlcm5hbEZvclBv
c09yUGl4ZWxQcmVmaXhlZCIgOiAic2V0UHJvcGVydHlWYWx1ZUludGVybmFsIjsKKyAgICAgICAg
CisgICAgICAgIG15ICRleGNlcHRpb25UaHJvd2VyID0gR2V0QXR0cmlidXRlRXhjZXB0aW9uVGhy
b3dlcigkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKKyAgICAgICAgbXkgJHRvTmF0aXZlRXhwcmVz
c2lvbiA9IEpTVmFsdWVUb05hdGl2ZSgkaW50ZXJmYWNlLCAkYXR0cmlidXRlLCAidmFsdWUiLCAk
YXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbH0sICImbGV4aWNhbEds
b2JhbE9iamVjdCIsICJsZXhpY2FsR2xvYmFsT2JqZWN0IiwgInRoaXNPYmplY3QiLCAiKnRoaXNP
YmplY3QuZ2xvYmFsT2JqZWN0KCkiLCAkZXhjZXB0aW9uVGhyb3dlcik7CisKKyAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTtc
biIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0byBuYXRpdmVWYWx1ZSA9
ICR7dG9OYXRpdmVFeHByZXNzaW9ufTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7XG4iKTsKKyAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEF0dHJpYnV0ZVNldHRlcjo6Y2FsbChsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0ge1xuIik7CisgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICAgICAgcmV0dXJuIGltcGwuJHtzZXR0ZXJOYW1lfShDU1NQcm9wZXJ0eSR7
cHJvcGVydHlJRH0sIFdURk1vdmUobmF0aXZlVmFsdWUpKTtcbiIpOworICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgfSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAgfSBlbHNpZiAoJGlzQ29uc3RydWN0b3IpIHsKICAg
ICAgICAgbXkgJGNvbnN0cnVjdG9yVHlwZSA9ICRhdHRyaWJ1dGUtPnR5cGUtPm5hbWU7CiAgICAg
ICAgICRjb25zdHJ1Y3RvclR5cGUgPX4gcy9Db25zdHJ1Y3RvciQvLzsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uCShyZXZp
c2lvbiAyNjg1NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJp
YnV0ZXMuanNvbgkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksMTAgQEAKICAgICAgICAgICAg
ICAgICAidXJsIjogImh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2N1c3Rv
bS1lbGVtZW50cy5odG1sI2NlcmVhY3Rpb25zIgogICAgICAgICAgICAgfQogICAgICAgICB9LAor
ICAgICAgICAiQ1NTUHJvcGVydHkiOiB7CisgICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjog
WyJhdHRyaWJ1dGUiXSwKKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbIioiXQorICAgICAgICB9LAog
ICAgICAgICAiQ2FjaGVkQXR0cmlidXRlIjogewogICAgICAgICAgICAgImNvbnRleHRzQWxsb3dl
ZCI6IFsiYXR0cmlidXRlIl0KICAgICAgICAgfSwKQEAgLTQ5LDkgKzUzLDYgQEAKICAgICAgICAg
IkNhbGxiYWNrVGhpc09iamVjdCI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBb
ImNhbGxiYWNrLWZ1bmN0aW9uIiwgIm9wZXJhdGlvbiJdCiAgICAgICAgIH0sCi0gICAgICAgICJD
YWxsTmFtZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVydGllcyI6IHsKLSAgICAgICAgICAg
ICJjb250ZXh0c0FsbG93ZWQiOiBbIm9wZXJhdGlvbiJdCi0gICAgICAgIH0sCiAgICAgICAgICJD
YWxsV2l0aCI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImF0dHJpYnV0ZSIs
ICJvcGVyYXRpb24iXSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbIkRvY3VtZW50IiwgIkV4ZWNT
dGF0ZSIsICJTY3JpcHRFeGVjdXRpb25Db250ZXh0IiwgIkdsb2JhbE9iamVjdCIsICJBY3RpdmVX
aW5kb3ciLCAiRmlyc3RXaW5kb3ciLCAiUmVzcG9uc2libGVEb2N1bWVudCIsICJXb3JsZCJdLApA
QCAtMTU3LDkgKzE1OCw2IEBACiAgICAgICAgICJEZWZhdWx0IjogewogICAgICAgICAgICAgImNv
bnRleHRzQWxsb3dlZCI6IFsib3BlcmF0aW9uIl0KICAgICAgICAgfSwKLSAgICAgICAgIkRlZmF1
bHREZWZpbmVPd25Qcm9wZXJ0eSI6IHsKLSAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBb
ImludGVyZmFjZSJdCi0gICAgICAgIH0sCiAgICAgICAgICJEaXNhYmxlZEJ5UXVpcmsiOiB7CiAg
ICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJpbnRlcmZhY2UiLCAiZGljdGlvbmFyeSIs
ICJlbnVtIiwgImF0dHJpYnV0ZSIsICJvcGVyYXRpb24iLCAiY29uc3RhbnQiLCAiZGljdGlvbmFy
eS1tZW1iZXIiLCAiaW5jbHVkZXMiXSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbIioiXSwKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0RPTVdpbmRvdy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTRE9NV2luZG93LmNwcAkocmV2aXNpb24gMjY4NTQ3KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRE9NV2luZG93LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjIsMzIgKzYyLDMyIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIEpTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNET01XaW5kb3dDb25zdHJ1Y3Rvcik7CiBKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTRE9NV2luZG93Q29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc0RPTVdpbmRvd0RPTVdpbmRvd0NvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIoc2V0SlNET01XaW5kb3dET01XaW5kb3dDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzRE9NV2luZG93RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0
b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU0RPTVdpbmRvd0V4cG9zZWRUb1dv
cmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNE
T01XaW5kb3dUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJF
X0NVU1RPTV9TRVRURVIoc2V0SlNET01XaW5kb3dUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0
cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNET01XaW5kb3dUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNET01XaW5kb3dUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKTsKLUpT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNET01XaW5kb3dUZXN0RGVmYXVsdFRvSlNPTkNvbnN0
cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNET01XaW5kb3dUZXN0RGVm
YXVsdFRvSlNPTkNvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNET01X
aW5kb3dUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IpOwotSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmls
dGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
RE9NV2luZG93VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTRE9NV2luZG93VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rv
cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93VGVzdEVuYWJsZWRGb3JD
b250ZXh0Q29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU0RPTVdp
bmRvd1Rlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNET01XaW5kb3dfRE9NV2luZG93Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU0RPTVdpbmRvd19ET01XaW5kb3dDb25zdHJ1Y3Rvcik7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93X0V4cG9zZWRUb1dvcmtlckFuZFdpbmRv
d0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNET01XaW5kb3df
RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc0RPTVdpbmRvd19UZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNET01XaW5kb3dfVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzRE9NV2lu
ZG93X1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU0RPTVdpbmRvd19UZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNv
bnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNET01XaW5kb3dfVGVzdERl
ZmF1bHRUb0pTT05Db25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpT
RE9NV2luZG93X1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc0RPTVdpbmRvd19UZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2Vk
Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU0RPTVdpbmRvd19U
ZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc0RPTVdpbmRvd19UZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVj
dG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNET01XaW5kb3dfVGVzdEVuYWJs
ZWRCeVNldHRpbmdDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzRE9N
V2luZG93X1Rlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNET01XaW5kb3dfVGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0
b3IpOwogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLUpTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNET01XaW5kb3dUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3Ip
OwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU0RPTVdpbmRvd1Rlc3RJbnRlcmZhY2VD
b25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93X1Rlc3RJ
bnRlcmZhY2VDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTRE9N
V2luZG93X1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcik7CiAjZW5kaWYKLUpTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNET01XaW5kb3dUZXN0Tm9kZUNvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJF
X0NVU1RPTV9TRVRURVIoc2V0SlNET01XaW5kb3dUZXN0Tm9kZUNvbnN0cnVjdG9yKTsKLUpTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNET01XaW5kb3dUZXN0T2JqZWN0Q29uc3RydWN0b3IpOwot
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU0RPTVdpbmRvd1Rlc3RPYmplY3RDb25zdHJ1
Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93VGVzdFByb21pc2VS
ZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0
SlNET01XaW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc0RPTVdpbmRvd19UZXN0Tm9kZUNvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNET01XaW5kb3dfVGVzdE5vZGVDb25zdHJ1Y3Rv
cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93X1Rlc3RPYmplY3RDb25z
dHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTRE9NV2luZG93X1Rlc3RP
YmplY3RDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93
X1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNU
T01fU0VUVEVSKHNldEpTRE9NV2luZG93X1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1
Y3Rvcik7CiAKIHVzaW5nIEpTRE9NV2luZG93RE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVj
dG9yTm90Q29uc3RydWN0YWJsZTxKU0RPTVdpbmRvdz47CiAKQEAgLTEzNiwyMSArMTM2LDIxIEBA
IHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU0QKIAogc3RhdGljIGNvbnN0
IEhhc2hUYWJsZVZhbHVlIEpTRE9NV2luZG93VGFibGVWYWx1ZXNbXSA9CiB7Ci0gICAgeyAiRE9N
V2luZG93Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc0RPTVdpbmRvd0RPTVdpbmRvd0NvbnN0cnVjdG9yKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNET01X
aW5kb3dET01XaW5kb3dDb25zdHJ1Y3RvcikgfSB9LAotICAgIHsgIkV4cG9zZWRUb1dvcmtlckFu
ZFdpbmRvdyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNET01XaW5kb3dFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25z
dHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTRE9NV2luZG93RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3Ip
IH0gfSwKLSAgICB7ICJUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcyIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNET01XaW5k
b3dUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNET01XaW5kb3dUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzRE9NV2luZG93VGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KHNldEpTRE9NV2luZG93VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25z
dHJ1Y3RvcikgfSB9LAotICAgIHsgIlRlc3REZWZhdWx0VG9KU09OIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc0RPTVdp
bmRvd1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU0RPTVdpbmRvd1Rlc3REZWZhdWx0
VG9KU09OQ29uc3RydWN0b3IpIH0gfSwKLSAgICB7ICJUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVk
QnlFeHBvc2VkIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRC
eUV4cG9zZWRDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTRE9NV2luZG93VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJl
ZEJ5RXhwb3NlZENvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdEVuYWJsZWRCeVNldHRpbmci
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzRE9NV2luZG93VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvciksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpT
RE9NV2luZG93VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcikgfSB9LAorICAgIHsgIkRP
TVdpbmRvdyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNET01XaW5kb3dfRE9NV2luZG93Q29uc3RydWN0b3IpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU0RP
TVdpbmRvd19ET01XaW5kb3dDb25zdHJ1Y3RvcikgfSB9LAorICAgIHsgIkV4cG9zZWRUb1dvcmtl
ckFuZFdpbmRvdyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNET01XaW5kb3dfRXhwb3NlZFRvV29ya2VyQW5kV2luZG93
Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihzZXRKU0RPTVdpbmRvd19FeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1
Y3RvcikgfSB9LAorICAgIHsgIlRlc3RDb25kaXRpb25hbEluY2x1ZGVzIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc0RP
TVdpbmRvd19UZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNET01XaW5kb3df
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvcikgfSB9LAorICAgIHsgIlRlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc0RPTVdpbmRvd19UZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNET01XaW5kb3dfVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVDb25zdHJ1Y3RvcikgfSB9LAorICAgIHsgIlRlc3REZWZhdWx0VG9KU09OIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc0RPTVdpbmRvd19UZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNET01XaW5kb3df
VGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3RvcikgfSB9LAorICAgIHsgIlRlc3REZWZhdWx0VG9K
U09ORmlsdGVyZWRCeUV4cG9zZWQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzRE9NV2luZG93X1Rlc3REZWZhdWx0VG9K
U09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTRE9NV2luZG93X1Rlc3REZWZhdWx0
VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcikgfSB9LAorICAgIHsgIlRlc3RFbmFi
bGVkQnlTZXR0aW5nIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc0RPTVdpbmRvd19UZXN0RW5hYmxlZEJ5U2V0dGluZ0Nv
bnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oc2V0SlNET01XaW5kb3dfVGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rvcikg
fSB9LAogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLSAgICB7
ICJUZXN0SW50ZXJmYWNlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc0RPTVdpbmRvd1Rlc3RJbnRlcmZhY2VDb25zdHJ1
Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KHNldEpTRE9NV2luZG93VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKSB9IH0sCisgICAgeyAi
VGVzdEludGVyZmFjZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNET01XaW5kb3dfVGVzdEludGVyZmFjZUNvbnN0cnVj
dG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNET01XaW5kb3dfVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKSB9IH0sCiAjZWxzZQog
ICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKLSAgICB7ICJUZXN0
Tm9kZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNET01XaW5kb3dUZXN0Tm9kZUNvbnN0cnVjdG9yKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNET01XaW5k
b3dUZXN0Tm9kZUNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdE9iamVjdCIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNET01XaW5kb3dUZXN0T2JqZWN0Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU0RPTVdpbmRvd1Rlc3RPYmplY3RD
b25zdHJ1Y3RvcikgfSB9LAotICAgIHsgIlRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzRE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNE
T01XaW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IpIH0gfSwKKyAgICB7
ICJUZXN0Tm9kZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNET01XaW5kb3dfVGVzdE5vZGVDb25zdHJ1Y3RvciksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpT
RE9NV2luZG93X1Rlc3ROb2RlQ29uc3RydWN0b3IpIH0gfSwKKyAgICB7ICJUZXN0T2JqZWN0Iiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc0RPTVdpbmRvd19UZXN0T2JqZWN0Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU0RPTVdpbmRvd19U
ZXN0T2JqZWN0Q29uc3RydWN0b3IpIH0gfSwKKyAgICB7ICJUZXN0UHJvbWlzZVJlamVjdGlvbkV2
ZW50Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc0RPTVdpbmRvd19UZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3Ry
dWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU0RPTVdpbmRvd19UZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3Ip
IH0gfSwKIH07CiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNET01XaW5kb3dUYWJsZSA9IHsg
MTEsIDMxLCB0cnVlLCBKU0RPTVdpbmRvdzo6aW5mbygpLCBKU0RPTVdpbmRvd1RhYmxlVmFsdWVz
LCBKU0RPTVdpbmRvd1RhYmxlSW5kZXggfTsKQEAgLTIwNSw3ICsyMDUsNyBAQCB2b2lkIEpTRE9N
V2luZG93OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sCiAgICAgc3RhdGljX2Fzc2VydCghc3RkOjpp
c19iYXNlX29mPEFjdGl2ZURPTU9iamVjdCwgRE9NV2luZG93Pjo6dmFsdWUsICJJbnRlcmZhY2Ug
aXMgbm90IG1hcmtlZCBhcyBbQWN0aXZlRE9NT2JqZWN0XSBldmVuIHRob3VnaCBpbXBsZW1lbnRh
dGlvbiBjbGFzcyBzdWJjbGFzc2VzIEFjdGl2ZURPTU9iamVjdC4iKTsKIAogICAgIGlmICgoanND
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpICYmIFRlc3RFbmFibGVkRm9yQ29udGV4dDo6ZW5h
YmxlZEZvckNvbnRleHQoKmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgp
KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSkpCi0gICAgICAgIHB1dERpcmVjdEN1c3RvbUFj
Y2Vzc29yKHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5i
dWlsdGluTmFtZXMoKS5UZXN0RW5hYmxlZEZvckNvbnRleHRQdWJsaWNOYW1lKCksIEN1c3RvbUdl
dHRlclNldHRlcjo6Y3JlYXRlKHZtLCBqc0RPTVdpbmRvd1Rlc3RFbmFibGVkRm9yQ29udGV4dENv
bnN0cnVjdG9yLCBzZXRKU0RPTVdpbmRvd1Rlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9y
KSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKSk7CisgICAgICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vz
c29yKHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWls
dGluTmFtZXMoKS5UZXN0RW5hYmxlZEZvckNvbnRleHRQdWJsaWNOYW1lKCksIEN1c3RvbUdldHRl
clNldHRlcjo6Y3JlYXRlKHZtLCBqc0RPTVdpbmRvd19UZXN0RW5hYmxlZEZvckNvbnRleHRDb25z
dHJ1Y3Rvciwgc2V0SlNET01XaW5kb3dfVGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3Ip
LCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSkpKTsKIH0KIAogSlNWYWx1ZSBKU0RPTVdpbmRvdzo6Z2V0
Q29uc3RydWN0b3IoVk0mIHZtLCBjb25zdCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpA
QCAtMjQxLDI4NiArMjQxLDI4NiBAQCBKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNET01X
aW5kb3dDCiAgICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1z
dGF0aWMgaW5saW5lIEpTVmFsdWUganNET01XaW5kb3dET01XaW5kb3dDb25zdHJ1Y3RvckdldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01XaW5kb3cmIHRoaXNP
YmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNET01XaW5kb3dfRE9NV2luZG93Q29uc3Ry
dWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NV2lu
ZG93JiB0aGlzT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICByZXR1cm4gSlNET01XaW5kb3c6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxl
eGljYWxHbG9iYWxPYmplY3QpLCAmdGhpc09iamVjdCk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc0RPTVdpbmRvd0RPTVdpbmRvd0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc0RPTVdpbmRvd19ET01XaW5kb3dDb25z
dHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU0RPTVdpbmRvdz46OmdldDxqc0RPTVdpbmRvd0RPTVdpbmRvd0NvbnN0cnVjdG9yR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiRE9NV2luZG93Iik7CisgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OmdldDxqc0RPTVdpbmRvd19ET01XaW5kb3dD
b25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIkRPTVdp
bmRvdyIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNET01XaW5kb3dET01XaW5kb3dD
b25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNE
T01XaW5kb3cmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNET01XaW5kb3dfRE9NV2luZG93Q29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NV2luZG93JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZh
bHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IuCiAgICAgcmV0dXJuIHRo
aXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIkRPTVdpbmRvdyIpLCBzdHJsZW4oIkRPTVdpbmRvdyIp
KSwgdmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNET01XaW5kb3dE
T01XaW5kb3dDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNET01XaW5kb3dfRE9NV2luZG93Q29uc3Ry
dWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpzZXQ8c2V0SlNET01XaW5kb3dET01XaW5kb3dD
b25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiRE9NV2luZG93Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRv
dz46OnNldDxzZXRKU0RPTVdpbmRvd19ET01XaW5kb3dDb25zdHJ1Y3RvclNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiRE9NV2luZG93Iik7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc0RPTVdpbmRvd0V4cG9zZWRUb1dvcmtlckFuZFdp
bmRvd0NvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0RPTVdpbmRvdyYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc0RPTVdp
bmRvd19FeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01XaW5kb3cmIHRoaXNPYmplY3QpCiB7CiAg
ICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU0V4cG9z
ZWRUb1dvcmtlckFuZFdpbmRvdzo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCksICZ0aGlzT2JqZWN0KTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzRE9NV2luZG93RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93X0V4cG9z
ZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
LSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6Z2V0PGpzRE9NV2luZG93RXhw
b3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3ciKTsKKyAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6Z2V0PGpzRE9NV2luZG93X0V4cG9zZWRUb1dvcmtl
ckFuZFdpbmRvd0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU0RPTVdpbmRvd0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yU2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTVdpbmRvdyYgdGhpc09i
amVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU0RPTVdpbmRvd19F
eHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01XaW5kb3cmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAgICByZXR1cm4gdGhp
c09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiRXhwb3NlZFRvV29ya2VyQW5kV2luZG93IiksIHN0cmxl
bigiRXhwb3NlZFRvV29ya2VyQW5kV2luZG93IikpLCB2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU0RPTVdpbmRvd0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU0RPTVdpbmRvd19FeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25z
dHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OnNldDxzZXRKU0RPTVdpbmRvd0V4cG9zZWRU
b1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3ciKTsKKyAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6c2V0PHNldEpTRE9NV2luZG93X0V4
cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3ci
KTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzRE9NV2luZG93VGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNET01XaW5kb3cmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNE
T01XaW5kb3dfVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvckdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01XaW5kb3cmIHRoaXNPYmplY3QpCiB7
CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgJnRoaXNPYmplY3QpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNET01XaW5kb3dUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc0RPTVdpbmRvd19UZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
LSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6Z2V0PGpzRE9NV2luZG93VGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgIlRlc3RDb25kaXRpb25hbEluY2x1ZGVzIik7CisgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OmdldDxqc0RPTVdpbmRvd19UZXN0Q29uZGl0aW9uYWxJ
bmNsdWRlc0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAiVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNl
dEpTRE9NV2luZG93VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvclNldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01XaW5kb3cmIHRoaXNPYmplY3Qs
IEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNET01XaW5kb3dfVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNET01XaW5kb3cmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7
CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAv
LyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAgICByZXR1cm4gdGhpc09iamVj
dC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgTENoYXIqPigiVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMiKSwgc3RybGVuKCJUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlcyIpKSwgdmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNET01XaW5kb3dUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUihzZXRKU0RPTVdpbmRvd19UZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTRE9NV2luZG93Pjo6c2V0PHNldEpTRE9NV2luZG93VGVzdENvbmRpdGlvbmFsSW5j
bHVkZXNDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMiKTsKKyAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTRE9NV2luZG93Pjo6c2V0PHNldEpTRE9NV2luZG93X1Rlc3RDb25kaXRpb25h
bEluY2x1ZGVzQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RDb25kaXRpb25hbEluY2x1ZGVzIik7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29u
c3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9N
V2luZG93JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzRE9NV2luZG93X1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NV2luZG93JiB0aGlzT2JqZWN0KQogewogICAgIFVO
VVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gSlNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCksICZ0aGlzT2JqZWN0KTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
RE9NV2luZG93VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNET01XaW5kb3dfVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7
Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OmdldDxqc0RPTVdpbmRvd1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSIpOworICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpnZXQ8anNET01XaW5kb3dfVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgIlRlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlIik7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3Ry
dWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NV2lu
ZG93JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpT
RE9NV2luZG93X1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3JTZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NV2luZG93JiB0aGlzT2JqZWN0
LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IuCiAg
ICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlIiksIHN0cmxlbigiVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUiKSksIHZhbHVlKTsK
IH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTRE9NV2luZG93VGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNET01XaW5kb3dfVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OnNldDxz
ZXRKU0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3JTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRv
dz46OnNldDxzZXRKU0RPTVdpbmRvd19UZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVj
dG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFs
dWUganNET01XaW5kb3dUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTVdpbmRvdyYgdGhpc09iamVjdCkKK3N0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc0RPTVdpbmRvd19UZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVj
dG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTVdpbmRv
dyYgdGhpc09iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgcmV0dXJuIEpTVGVzdERlZmF1bHRUb0pTT046OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCAmdGhpc09iamVjdCk7CiB9CiAKLUpTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93
X1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewot
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpnZXQ8anNET01XaW5kb3dUZXN0
RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiVGVzdERlZmF1bHRUb0pTT04iKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
RE9NV2luZG93Pjo6Z2V0PGpzRE9NV2luZG93X1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3JH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RGVmYXVsdFRvSlNP
TiIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNET01XaW5kb3dUZXN0RGVmYXVsdFRv
SlNPTkNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0RPTVdpbmRvdyYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU0RPTVdpbmRvd19UZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yU2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTVdpbmRvdyYgdGhpc09iamVj
dCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yLgog
ICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0RGVmYXVsdFRvSlNPTiIp
LCBzdHJsZW4oIlRlc3REZWZhdWx0VG9KU09OIikpLCB2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01f
U0VUVEVSKHNldEpTRE9NV2luZG93X1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNET01XaW5kb3c+OjpzZXQ8c2V0SlNET01XaW5kb3dUZXN0RGVmYXVsdFRvSlNPTkNvbnN0
cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJUZXN0RGVmYXVsdFRvSlNPTiIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNET01X
aW5kb3c+OjpzZXQ8c2V0SlNET01XaW5kb3dfVGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVz
dERlZmF1bHRUb0pTT04iKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzRE9NV2luZG93
VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTVdpbmRvdyYgdGhpc09iamVjdCkK
K3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc0RPTVdpbmRvd19UZXN0RGVmYXVsdFRvSlNPTkZpbHRl
cmVkQnlFeHBvc2VkQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTRE9NV2luZG93JiB0aGlzT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRl
cmVkQnlFeHBvc2VkOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgJnRoaXNPYmplY3QpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNET01X
aW5kb3dUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93X1Rl
c3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OmdldDxq
c0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rvckdl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3REZWZhdWx0VG9KU09O
RmlsdGVyZWRCeUV4cG9zZWQiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93
Pjo6Z2V0PGpzRE9NV2luZG93X1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25z
dHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3REZWZh
dWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNl
dEpTRE9NV2luZG93VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9y
U2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTVdpbmRvdyYg
dGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU0RPTVdp
bmRvd19UZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3JTZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NV2luZG93JiB0aGlzT2Jq
ZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3Iu
CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3REZWZhdWx0VG9KU09O
RmlsdGVyZWRCeUV4cG9zZWQiKSwgc3RybGVuKCJUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlF
eHBvc2VkIikpLCB2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU0RP
TVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoc2V0SlNET01XaW5kb3dfVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6c2V0PHNldEpTRE9NV2luZG93VGVzdERlZmF1
bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0RGVmYXVsdFRvSlNPTkZpbHRl
cmVkQnlFeHBvc2VkIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OnNl
dDxzZXRKU0RPTVdpbmRvd19UZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3Ry
dWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgIlRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQiKTsKIH0KIAotc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzRE9NV2luZG93VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rvckdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01XaW5kb3cmIHRo
aXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNET01XaW5kb3dfVGVzdEVuYWJsZWRC
eVNldHRpbmdDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNET01XaW5kb3cmIHRoaXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nOjpnZXRD
b25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgJnRoaXNPYmplY3Qp
OwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNET01XaW5kb3dUZXN0RW5hYmxlZEJ5
U2V0dGluZ0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc0RPTVdpbmRvd19UZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2lu
ZG93Pjo6Z2V0PGpzRE9NV2luZG93VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvckdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RFbmFibGVkQnlTZXR0aW5n
Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OmdldDxqc0RPTVdpbmRv
d19UZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAiVGVzdEVuYWJsZWRCeVNldHRpbmciKTsKIH0KIAotc3RhdGljIGlu
bGluZSBib29sIHNldEpTRE9NV2luZG93VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvclNl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01XaW5kb3cmIHRo
aXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNET01XaW5k
b3dfVGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01XaW5kb3cmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAgICByZXR1cm4gdGhp
c09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEVuYWJsZWRCeVNldHRpbmciKSwgc3RybGVuKCJU
ZXN0RW5hYmxlZEJ5U2V0dGluZyIpKSwgdmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNET01XaW5kb3dUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU0RPTVdpbmRvd19UZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTRE9NV2luZG93Pjo6c2V0PHNldEpTRE9NV2luZG93VGVzdEVuYWJsZWRCeVNldHRpbmdDb25z
dHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAiVGVzdEVuYWJsZWRCeVNldHRpbmciKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
RE9NV2luZG93Pjo6c2V0PHNldEpTRE9NV2luZG93X1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3Ry
dWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgIlRlc3RFbmFibGVkQnlTZXR0aW5nIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c0RPTVdpbmRvd1Rlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTVdpbmRvdyYgdGhpc09iamVjdCkKK3N0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc0RPTVdpbmRvd19UZXN0RW5hYmxlZEZvckNvbnRleHRDb25z
dHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01X
aW5kb3cmIHRoaXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIHJldHVybiBKU1Rlc3RFbmFibGVkRm9yQ29udGV4dDo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksICZ0aGlzT2JqZWN0KTsKIH0KIAotSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzRE9NV2luZG93VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzRE9NV2luZG93X1Rlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6Z2V0
PGpzRE9NV2luZG93VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RW5hYmxlZEZvckNvbnRleHQiKTsKKyAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6Z2V0PGpzRE9NV2luZG93X1Rlc3RF
bmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiVGVzdEVuYWJsZWRGb3JDb250ZXh0Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU0RPTVdpbmRvd1Rlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yU2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTVdpbmRvdyYgdGhpc09i
amVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU0RPTVdpbmRvd19U
ZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNET01XaW5kb3cmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUp
CiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAgICByZXR1cm4gdGhpc09i
amVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEVuYWJsZWRGb3JDb250ZXh0IiksIHN0cmxlbigiVGVz
dEVuYWJsZWRGb3JDb250ZXh0IikpLCB2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUihzZXRKU0RPTVdpbmRvd1Rlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU0RPTVdpbmRvd19UZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU0RPTVdpbmRvdz46OnNldDxzZXRKU0RPTVdpbmRvd1Rlc3RFbmFibGVkRm9yQ29udGV4dENv
bnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJUZXN0RW5hYmxlZEZvckNvbnRleHQiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTRE9NV2luZG93Pjo6c2V0PHNldEpTRE9NV2luZG93X1Rlc3RFbmFibGVkRm9yQ29udGV4dENv
bnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJUZXN0RW5hYmxlZEZvckNvbnRleHQiKTsKIH0KIAogI2lmIEVOQUJMRShDb25kaXRp
b24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc0RPTVdp
bmRvd1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNET01XaW5kb3cmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNET01XaW5kb3dfVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTVdpbmRvdyYgdGhpc09iamVjdCkKIHsK
ICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIEpTVGVz
dEludGVyZmFjZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksICZ0aGlzT2JqZWN0KTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzRE9NV2lu
ZG93VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc0RPTVdpbmRvd19UZXN0SW50ZXJmYWNlQ29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNET01X
aW5kb3c+OjpnZXQ8anNET01XaW5kb3dUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0SW50ZXJmYWNlIik7CisgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OmdldDxqc0RPTVdpbmRvd19UZXN0SW50ZXJm
YWNlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJU
ZXN0SW50ZXJmYWNlIik7CiB9CiAKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8
IEVOQUJMRShDb25kaXRpb24yKQotc3RhdGljIGlubGluZSBib29sIHNldEpTRE9NV2luZG93VGVz
dEludGVyZmFjZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU0RPTVdpbmRvdyYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU0RPTVdpbmRvd19UZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NV2luZG93JiB0aGlzT2Jq
ZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3Iu
CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RJbnRlcmZhY2UiKSwg
c3RybGVuKCJUZXN0SW50ZXJmYWNlIikpLCB2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9N
X1NFVFRFUihzZXRKU0RPTVdpbmRvd1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0
SlNET01XaW5kb3dfVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93
Pjo6c2V0PHNldEpTRE9NV2luZG93VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0SW50ZXJmYWNl
Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OnNldDxzZXRKU0RPTVdp
bmRvd19UZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RJbnRlcmZhY2UiKTsKIH0KIAogI2VuZGlm
CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc0RPTVdpbmRvd1Rlc3ROb2RlQ29uc3RydWN0b3JH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NV2luZG93JiB0
aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzRE9NV2luZG93X1Rlc3ROb2RlQ29u
c3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9N
V2luZG93JiB0aGlzT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICByZXR1cm4gSlNUZXN0Tm9kZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCksICZ0aGlzT2JqZWN0KTsKIH0KIAotSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzRE9NV2luZG93VGVzdE5vZGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNET01XaW5kb3dfVGVzdE5vZGVDb25z
dHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU0RPTVdpbmRvdz46OmdldDxqc0RPTVdpbmRvd1Rlc3ROb2RlQ29uc3RydWN0b3JHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0Tm9kZSIpOworICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpnZXQ8anNET01XaW5kb3dfVGVzdE5vZGVDb25z
dHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROb2Rl
Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU0RPTVdpbmRvd1Rlc3ROb2RlQ29uc3Ry
dWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NV2lu
ZG93JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpT
RE9NV2luZG93X1Rlc3ROb2RlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTRE9NV2luZG93JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQog
ewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
Ly8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IuCiAgICAgcmV0dXJuIHRoaXNPYmpl
Y3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROb2RlIiksIHN0cmxlbigiVGVzdE5vZGUiKSksIHZhbHVl
KTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTRE9NV2luZG93VGVzdE5vZGVD
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVG
SU5FX0NVU1RPTV9TRVRURVIoc2V0SlNET01XaW5kb3dfVGVzdE5vZGVDb25zdHJ1Y3RvciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU0RPTVdpbmRvdz46OnNldDxzZXRKU0RPTVdpbmRvd1Rlc3ROb2RlQ29uc3RydWN0b3JT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRl
c3ROb2RlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OnNldDxzZXRK
U0RPTVdpbmRvd19UZXN0Tm9kZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0Tm9kZSIpOwogfQogCi1zdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNET01XaW5kb3dUZXN0T2JqZWN0Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NV2luZG93JiB0aGlzT2JqZWN0KQor
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzRE9NV2luZG93X1Rlc3RPYmplY3RDb25zdHJ1Y3Rvckdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01XaW5kb3cmIHRo
aXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IHJldHVybiBKU1Rlc3RPYmo6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpLCAmdGhpc09iamVjdCk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c0RPTVdpbmRvd1Rlc3RPYmplY3RDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNET01XaW5kb3dfVGVzdE9iamVjdENvbnN0cnVjdG9y
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9N
V2luZG93Pjo6Z2V0PGpzRE9NV2luZG93VGVzdE9iamVjdENvbnN0cnVjdG9yR2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE9iamVjdCIpOworICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpnZXQ8anNET01XaW5kb3dfVGVzdE9iamVjdENvbnN0
cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE9iamVj
dCIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNET01XaW5kb3dUZXN0T2JqZWN0Q29u
c3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9N
V2luZG93JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNl
dEpTRE9NV2luZG93X1Rlc3RPYmplY3RDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01XaW5kb3cmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAgICByZXR1cm4gdGhp
c09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE9iamVjdCIpLCBzdHJsZW4oIlRlc3RPYmplY3Qi
KSksIHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTRE9NV2luZG93
VGVzdE9iamVjdENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU0RPTVdpbmRvd19UZXN0T2JqZWN0Q29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpzZXQ8c2V0SlNET01XaW5kb3dUZXN0T2Jq
ZWN0Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgIlRlc3RPYmplY3QiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9N
V2luZG93Pjo6c2V0PHNldEpTRE9NV2luZG93X1Rlc3RPYmplY3RDb25zdHJ1Y3RvclNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE9iamVj
dCIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNET01XaW5kb3dUZXN0UHJvbWlzZVJl
amVjdGlvbkV2ZW50Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTRE9NV2luZG93JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzRE9NV2luZG93X1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvckdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01XaW5kb3cmIHRoaXNPYmpl
Y3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVy
biBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQ6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0o
JmxleGljYWxHbG9iYWxPYmplY3QpLCAmdGhpc09iamVjdCk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc0RPTVdpbmRvd1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rv
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNET01X
aW5kb3dfVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6Z2V0PGpz
RE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yR2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFByb21pc2VSZWplY3Rpb25FdmVudCIp
OworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpnZXQ8anNET01XaW5kb3df
VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFByb21pc2VSZWplY3Rpb25FdmVudCIpOwogfQogCi1z
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNET01XaW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50
Q29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
RE9NV2luZG93JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29s
IHNldEpTRE9NV2luZG93X1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvclNldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01XaW5kb3cmIHRoaXNP
YmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rv
ci4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFByb21pc2VSZWpl
Y3Rpb25FdmVudCIpLCBzdHJsZW4oIlRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQiKSksIHZhbHVl
KTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTRE9NV2luZG93VGVzdFByb21p
c2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU0RPTVdpbmRvd19UZXN0UHJv
bWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpzZXQ8
c2V0SlNET01XaW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3JTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RQcm9t
aXNlUmVqZWN0aW9uRXZlbnQiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93
Pjo6c2V0PHNldEpTRE9NV2luZG93X1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rv
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
VGVzdFByb21pc2VSZWplY3Rpb25FdmVudCIpOwogfQogCiBKU0M6Oklzb1N1YnNwYWNlKiBKU0RP
TVdpbmRvdzo6c3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZtKQpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcAkocmV2aXNpb24gMjY4NTQ3KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw4ICs0OCw4IEBAIHVzaW5nIG5h
bWVzcGFjZSBKU0M7CiAKIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKTsKIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0
SlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZURlZGljYXRlZFdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU0Rl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGVfRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHNldEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVfRGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik7CiAKIHVzaW5nIEpTRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGVET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3Rh
YmxlPEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+OwogCkBAIC02Myw3ICs2Myw3IEBAIHN0
YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU0QKIAogc3RhdGljIGNvbnN0IEhh
c2hUYWJsZVZhbHVlIEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVUYWJsZVZhbHVlc1tdID0K
IHsKLSAgICB7ICJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNEZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZURlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Ip
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihz
ZXRKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcikgfSB9LAorICAgIHsgIkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlX0RlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPihzZXRKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlX0RlZGljYXRlZFdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IpIH0gfSwKIH07CiAKIHN0YXRpYyBjb25zdCBIYXNo
VGFibGUgSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZVRhYmxlID0geyAxLCAxLCB0cnVlLCBK
U0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjppbmZvKCksIEpTRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGVUYWJsZVZhbHVlcywgSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZVRhYmxlSW5k
ZXggfTsKQEAgLTE1MiwyNyArMTUyLDI3IEBAIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRK
U0RlZGljYXRlZFcKICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSYgdGhpc09i
amVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
X0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUmIHRo
aXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IHJldHVybiBKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihKU0M6
OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7
CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc0RlZGljYXRlZFdvcmtlckdsb2JhbFNj
b3BlRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZV9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGU+OjpnZXQ8anNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZURlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSIpOworICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT46OmdldDxqc0RlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlX0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNEZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZURlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNE
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZV9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAg
IGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgLy8gU2hh
ZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IuCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0
RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNv
bnN0IExDaGFyKj4oIkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIiksIHN0cmxlbigiRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGUiKSksIHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01f
U0VUVEVSKHNldEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVEZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
X0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNEZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZT46OnNldDxzZXRKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGU+OjpzZXQ8c2V0SlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZV9EZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSIpOwogfQog
CiBKU0M6Oklzb1N1YnNwYWNlKiBKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpzdWJzcGFj
ZUZvckltcGwoSlNDOjpWTSYgdm0pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3cuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0V4cG9zZWRUb1dvcmtl
ckFuZFdpbmRvdy5jcHAJKHJldmlzaW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTg3LDcgKzg3LDcgQEAgSlNDOjpKU09iamVjdCogY29udmVydERpY3Rpb25h
cnlUb0pTKEpTQwogCiAvLyBGdW5jdGlvbnMKIAotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uRG9Tb21ldGhpbmcpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd1Byb3Rv
dHlwZUZ1bmN0aW9uX2RvU29tZXRoaW5nKTsKIAogLy8gQXR0cmlidXRlcwogCkBAIC0xNjUsNyAr
MTY1LDcgQEAgdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNFeHBvc2VkVG9Xbwogc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93UHJvdG90eXBl
VGFibGVWYWx1ZXNbXSA9CiB7CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzRXhwb3Nl
ZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRv
d0NvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiZG9Tb21ldGhpbmciLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzRXhwb3NlZFRvV29ya2Vy
QW5kV2luZG93UHJvdG90eXBlRnVuY3Rpb25Eb1NvbWV0aGluZyksIChpbnRwdHJfdCkgKDApIH0g
fSwKKyAgICB7ICJkb1NvbWV0aGluZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dQcm90b3R5
cGVGdW5jdGlvbl9kb1NvbWV0aGluZyksIChpbnRwdHJfdCkgKDApIH0gfSwKIH07CiAKIGNvbnN0
IENsYXNzSW5mbyBKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd1Byb3RvdHlwZTo6c19pbmZvID0g
eyAiRXhwb3NlZFRvV29ya2VyQW5kV2luZG93IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVs
bHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd1Byb3Rv
dHlwZSkgfTsKQEAgLTI0Miw3ICsyNDIsNyBAQCBKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0
SlNFeHBvc2VkVG9XCiAgICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwog
fQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNFeHBvc2VkVG9Xb3JrZXJB
bmRXaW5kb3dQcm90b3R5cGVGdW5jdGlvbkRvU29tZXRoaW5nQm9keShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBl
bmFtZSBJRExPcGVyYXRpb248SlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3c+OjpDbGFzc1BhcmFt
ZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzRXhw
b3NlZFRvV29ya2VyQW5kV2luZG93UHJvdG90eXBlRnVuY3Rpb25fZG9Tb21ldGhpbmdCb2R5KEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBj
YWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRv
dz46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMjUyLDkgKzI1Miw5IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc0V4cG8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRGljdGlvbmFyeTxFeHBvc2VkVG9Xb3JrZXJBbmRXaW5k
b3c6OkRpY3Q+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVj
dCgpLCBpbXBsLmRvU29tZXRoaW5nKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uRG9Tb21ldGhpbmcs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzRXhwb3NlZFRvV29ya2VyQW5kV2luZG93
UHJvdG90eXBlRnVuY3Rpb25fZG9Tb21ldGhpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3c+OjpjYWxsPGpzRXhwb3NlZFRvV29ya2Vy
QW5kV2luZG93UHJvdG90eXBlRnVuY3Rpb25Eb1NvbWV0aGluZ0JvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAiZG9Tb21ldGhpbmciKTsKKyAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Pjo6Y2FsbDxqc0V4cG9zZWRUb1dvcmtlckFu
ZFdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uX2RvU29tZXRoaW5nQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJkb1NvbWV0aGluZyIpOwogfQogCiBKU0M6Oklzb1N1YnNwYWNl
KiBKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdzo6c3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZt
KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmNwcAkocmV2aXNp
b24gMjY4NTQ3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw4ICs0OCw4
IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNQ
YWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKTsKIEpTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIoc2V0SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKTsKLUpTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNQYWludFdvcmtsZXRHbG9iYWxTY29wZVBhaW50V29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Bh
aW50V29ya2xldEdsb2JhbFNjb3BlUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik7
CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVfUGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVfUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVD
b25zdHJ1Y3Rvcik7CiAKIHVzaW5nIEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVET01Db25zdHJ1
Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTUGFpbnRXb3JrbGV0R2xv
YmFsU2NvcGU+OwogCkBAIC02Myw3ICs2Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFj
dEhhc2hJbmRleCBKU1AKIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTUGFpbnRXb3Jr
bGV0R2xvYmFsU2NvcGVUYWJsZVZhbHVlc1tdID0KIHsKLSAgICB7ICJQYWludFdvcmtsZXRHbG9i
YWxTY29wZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNQYWludFdvcmtsZXRHbG9iYWxTY29wZVBhaW50V29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlUGFpbnRXb3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcikgfSB9LAorICAgIHsgIlBhaW50V29ya2xldEdsb2Jh
bFNjb3BlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1BhaW50V29ya2xldEdsb2JhbFNjb3BlX1BhaW50V29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlX1BhaW50V29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IpIH0gfSwKIH07CiAKIHN0YXRpYyBjb25zdCBIYXNo
VGFibGUgSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZVRhYmxlID0geyAxLCAxLCB0cnVlLCBKU1Bh
aW50V29ya2xldEdsb2JhbFNjb3BlOjppbmZvKCksIEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVU
YWJsZVZhbHVlcywgSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZVRhYmxlSW5kZXggfTsKQEAgLTE1
MiwyNyArMTUyLDI3IEBAIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1BhaW50V29ya2wK
ICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNv
bnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1BhaW50V29ya2xldEdsb2JhbFNjb3BlUGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZSYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1BhaW50V29ya2xldEdsb2JhbFNjb3BlX1BhaW50V29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUmIHRoaXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1BhaW50V29ya2xldEdsb2JhbFNj
b3BlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhp
c09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1BhaW50V29ya2xldEdsb2JhbFNjb3BlUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNQYWlu
dFdvcmtsZXRHbG9iYWxTY29wZV9QYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTUGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGU+OjpnZXQ8anNQYWludFdvcmtsZXRHbG9iYWxTY29wZVBhaW50V29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJQYWludFdvcmtsZXRHbG9iYWxTY29wZSIpOworICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZT46OmdldDxqc1BhaW50V29ya2xldEdsb2Jh
bFNjb3BlX1BhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJQYWludFdvcmtsZXRHbG9iYWxTY29wZSIpOwogfQog
Ci1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZVBhaW50V29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUmIHRoaXNPYmplY3QsIEpTVmFs
dWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNQYWludFdvcmtsZXRHbG9iYWxTY29w
ZV9QYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlJiB0aGlzT2Jq
ZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3Iu
CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlBhaW50V29ya2xldEdsb2Jh
bFNjb3BlIiksIHN0cmxlbigiUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUiKSksIHZhbHVlKTsKIH0K
IAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVQ
YWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1BhaW50V29ya2xl
dEdsb2JhbFNjb3BlX1BhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZT46OnNldDxzZXRKU1BhaW50V29ya2xldEdsb2JhbFNj
b3BlUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiUGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU+
OjpzZXQ8c2V0SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZV9QYWludFdvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJQYWludFdvcmtsZXRHbG9iYWxTY29wZSIpOwogfQogCiBKU0M6Oklzb1N1YnNw
YWNlKiBKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlOjpzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYg
dm0pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAJKHJl
dmlzaW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDgg
KzQ4LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKTsKIEpTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik7Ci1K
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzU2VydmljZVdvcmtlckdsb2JhbFNjb3BlU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZVNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGVfU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZV9TZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik7CiAKIHVzaW5nIEpTU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxK
U1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT47CiAKQEAgLTYzLDcgKzYzLDcgQEAgc3RhdGljIGNv
bnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTUwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxl
VmFsdWUgSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVUYWJsZVZhbHVlc1tdID0KIHsKLSAgICB7
ICJTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZVNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKSB9IH0sCisg
ICAgeyAiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1NlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZV9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlX1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKSB9
IH0sCiB9OwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlVGFibGUgPSB7IDEsIDEsIHRydWUsIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjppbmZv
KCksIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlVGFibGVWYWx1ZXMsIEpTU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlVGFibGVJbmRleCB9OwpAQCAtMTUyLDI3ICsxNTIsMjcgQEAgSlNDX0RFRklO
RV9DVVNUT01fU0VUVEVSKHNldEpTU2VydmljZVdvcgogICAgIHJldHVybiBwcm90b3R5cGUtPnB1
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlX1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZSYgdGhpc09iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgcmV0dXJuIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZVNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZV9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZT46OmdldDxqc1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZVNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZT46OmdldDxqc1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZV9T
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIpOwogfQogCi1zdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmIHRoaXNPYmplY3QsIEpTVmFsdWUg
dmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVf
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiB0aGlzT2Jq
ZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3Iu
CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSIpLCBzdHJsZW4oIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIpKSwgdmFsdWUpOwog
fQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGVTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNTZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGVfU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+OjpzZXQ8c2V0SlNTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGVTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1NlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZT46OnNldDxzZXRKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZV9TZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIik7CiB9CiAK
IEpTQzo6SXNvU3Vic3BhY2UqIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpzdWJzcGFjZUZv
ckltcGwoSlNDOjpWTSYgdm0pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHAJKHJldmlz
aW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RDRVJlYWN0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDI1ICs1MiwyNSBAQCB1
c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENFUmVh
Y3Rpb25zKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Q0VSZWFjdGlvbnNQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENFUmVhY3Rpb25zUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9k
V2l0aENFUmVhY3Rpb25zKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Q0VSZWFj
dGlvbnNQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQpOwog
CiAvLyBBdHRyaWJ1dGVzCiAKIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q0VSZWFj
dGlvbnNDb25zdHJ1Y3Rvcik7CiBKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENF
UmVhY3Rpb25zQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RD
RVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyk7Ci1KU0NfREVDTEFSRV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKTsKLUpT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRl
V2l0aENFUmVhY3Rpb25zKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q0VS
ZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKTsKLUpTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZSk7Ci1KU0Nf
REVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRy
aWJ1dGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDRVJlYWN0aW9uc0F0dHJp
YnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCk7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkKTsK
LUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmli
dXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVl
ZGVkKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
ZmllckF0dHJpYnV0ZU5vdE5lZWRlZCk7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDRVJlYWN0aW9uc19hdHRyaWJ1dGVXaXRoQ0VSZWFjdGlv
bnMpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDRVJlYWN0aW9uc19hdHRy
aWJ1dGVXaXRoQ0VSZWFjdGlvbnMpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RD
RVJlYWN0aW9uc19yZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q0VSZWFjdGlvbnNfcmVmbGVjdEF0dHJpYnV0ZVdpdGhD
RVJlYWN0aW9ucyk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdENFUmVhY3Rpb25z
X3N0cmluZ2lmaWVyQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0Q0VSZWFjdGlvbnNfc3RyaW5naWZpZXJBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RDRVJlYWN0aW9uc19hdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVk
ZWQpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDRVJlYWN0aW9uc19hdHRy
aWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RDRVJlYWN0aW9uc19yZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVl
ZGVkKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q0VSZWFjdGlvbnNfcmVm
bGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCk7CitKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdENFUmVhY3Rpb25zX3N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVk
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q0VSZWFjdGlvbnNfc3RyaW5n
aWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQpOwogCiBjbGFzcyBKU1Rlc3RDRVJlYWN0aW9uc1Byb3Rv
dHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAt
MTI2LDE0ICsxMjYsMTQgQEAgdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0Q0VSZWFj
dAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdENFUmVhY3Rpb25zUHJvdG90eXBl
VGFibGVWYWx1ZXNbXSA9CiB7CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdENF
UmVhY3Rpb25zQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKSB9IH0s
Ci0gICAgeyAiYXR0cmlidXRlV2l0aENFUmVhY3Rpb25zIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0
ZVdpdGhDRVJlYWN0aW9ucyksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rp
b25zKSB9IH0sCi0gICAgeyAicmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q0VS
ZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0Q0VSZWFjdGlv
bnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKSB9IH0sCi0gICAgeyAic3RyaW5naWZp
ZXJBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUp
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGUpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlKSB9IH0sCi0gICAgeyAiYXR0cmlidXRlV2l0
aENFUmVhY3Rpb25zTm90TmVlZGVkIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9N
QXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0
aW9uc05vdE5lZWRlZCksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KHNldEpTVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25z
Tm90TmVlZGVkKSB9IH0sCi0gICAgeyAicmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05v
dE5lZWRlZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpD
dXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90
TmVlZGVkKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25z
Tm90TmVlZGVkKSB9IH0sCi0gICAgeyAic3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNz
b3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkKSB9IH0sCi0gICAgeyAibWV0aG9kV2l0
aENFUmVhY3Rpb25zIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aENFUmVhY3Rpb25zKSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgIm1ldGhvZFdpdGhDRVJl
YWN0aW9uc05vdE5lZWRlZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxS
YXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJh
dHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
T01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdENFUmVhY3Rpb25zX2F0dHJpYnV0ZVdpdGhDRVJl
YWN0aW9ucyksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdENFUmVhY3Rpb25zX2F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucykgfSB9
LAorICAgIHsgInJlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdENFUmVhY3Rpb25z
X3JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RDRVJlYWN0aW9uc19yZWZs
ZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKSB9IH0sCisgICAgeyAic3RyaW5naWZpZXJBdHRy
aWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3Vz
dG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdENFUmVhY3Rpb25zX3N0cmluZ2lmaWVyQXR0cmlidXRlKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0Q0VSZWFj
dGlvbnNfc3RyaW5naWZpZXJBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJhdHRyaWJ1dGVXaXRoQ0VS
ZWFjdGlvbnNOb3ROZWVkZWQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRy
aWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdENFUmVhY3Rpb25zX2F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9u
c05vdE5lZWRlZCksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdENFUmVhY3Rpb25zX2F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05v
dE5lZWRlZCkgfSB9LAorICAgIHsgInJlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3RO
ZWVkZWQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3Vz
dG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdENFUmVhY3Rpb25zX3JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3RO
ZWVkZWQpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3RDRVJlYWN0aW9uc19yZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25z
Tm90TmVlZGVkKSB9IH0sCisgICAgeyAic3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNz
b3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dENFUmVhY3Rpb25zX3N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0Q0VSZWFj
dGlvbnNfc3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQpIH0gfSwKKyAgICB7ICJtZXRob2RX
aXRoQ0VSZWFjdGlvbnMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdENFUmVhY3Rpb25zUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9k
V2l0aENFUmVhY3Rpb25zKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgIm1ldGhvZFdpdGhD
RVJlYWN0aW9uc05vdE5lZWRlZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9t
ZXRob2RXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQpLCAoaW50cHRyX3QpICgwKSB9IH0sCiB9Owog
CiBjb25zdCBDbGFzc0luZm8gSlNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGU6OnNfaW5mbyA9IHsg
IlRlc3RDRVJlYWN0aW9ucyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGUpIH07CkBAIC0yMTUsNyAr
MjE1LDcgQEAgSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENFUmVhYwogICAgIHJl
dHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0
b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RDRVJlYWN0aW9ucyYgdGhp
c09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc19hdHRyaWJ1
dGVXaXRoQ0VSZWFjdGlvbnNHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTVGVzdENFUmVhY3Rpb25zJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMjMsMTIgKzIyMywxMiBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNBCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29w
ZSwgaW1wbC5hdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMoKSkpKTsKIH0KIAotSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDRVJl
YWN0aW9uc19hdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpnZXQ8anNUZXN0
Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhdHRy
aWJ1dGVXaXRoQ0VSZWFjdGlvbnMiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENF
UmVhY3Rpb25zPjo6Z2V0PGpzVGVzdENFUmVhY3Rpb25zX2F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9u
c0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgImF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyIpOwogfQogCi1zdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlv
bnNTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdENFUmVh
Y3Rpb25zJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdENFUmVhY3Rpb25zX2F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc1NldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q0VSZWFjdGlvbnMmIHRoaXNPYmpl
Y3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTI0MiwxMiArMjQyLDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RD
RVJlYWN0aW9uc0EKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RDRVJlYWN0aW9uc19hdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0Q0VSZWFjdGlvbnM+OjpzZXQ8c2V0SlNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VS
ZWFjdGlvbnNTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgImF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyIpOworICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpzZXQ8c2V0SlNUZXN0Q0VSZWFjdGlvbnNfYXR0cmlidXRl
V2l0aENFUmVhY3Rpb25zU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJhdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMiKTsKIH0KIAotc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0
aW9uc0dldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q0VS
ZWFjdGlvbnMmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q0VSZWFj
dGlvbnNfcmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc0dldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q0VSZWFjdGlvbnMmIHRoaXNPYmplY3QpCiB7
CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI1NSwxMiArMjU1
LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1IKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0YXR0cmlidXRld2l0aGNlcmVhY3Rpb25zQXR0
cikpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDRVJlYWN0aW9uc1Jl
ZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENFUmVhY3Rpb25zX3JlZmxlY3RBdHRyaWJ1dGVX
aXRoQ0VSZWFjdGlvbnMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpnZXQ8anNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0
QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdEF0dHJpYnV0
ZVdpdGhDRVJlYWN0aW9ucyIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFj
dGlvbnM+OjpnZXQ8anNUZXN0Q0VSZWFjdGlvbnNfcmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0
aW9uc0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMiKTsK
IH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJp
YnV0ZVdpdGhDRVJlYWN0aW9uc1NldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0Q0VSZWFjdGlvbnMmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNfcmVmbGVjdEF0dHJpYnV0ZVdpdGhD
RVJlYWN0aW9uc1NldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNU
ZXN0Q0VSZWFjdGlvbnMmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYg
dm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI3NCwxMiArMjc0LDEyIEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1IKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0
dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q0VSZWFjdGlvbnNfcmVmbGVj
dEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9ucz46OnNl
dDxzZXRKU1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZmxl
Y3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdENFUmVhY3Rpb25zPjo6c2V0PHNldEpTVGVzdENFUmVhY3Rpb25zX3JlZmxlY3RBdHRyaWJ1
dGVXaXRoQ0VSZWFjdGlvbnNTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgInJlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMiKTsKIH0KIAot
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1
dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdENFUmVh
Y3Rpb25zJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENFUmVhY3Rp
b25zX3N0cmluZ2lmaWVyQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1Rlc3RDRVJlYWN0aW9ucyYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2
bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjg3LDEyICsyODcsMTIgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zUwogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8VGVzdENFUmVhY3Rpb25zU3RyaW5naWZp
ZXI+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhy
b3dTY29wZSwgaW1wbC5zdHJpbmdpZmllckF0dHJpYnV0ZSgpKSkpOwogfQogCi1KU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZSwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q0VSZWFj
dGlvbnNfc3RyaW5naWZpZXJBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpnZXQ8anNUZXN0Q0VSZWFj
dGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0cmluZ2lmaWVyQXR0
cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9ucz46Omdl
dDxqc1Rlc3RDRVJlYWN0aW9uc19zdHJpbmdpZmllckF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
InN0cmluZ2lmaWVyQXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RDRVJlYWN0aW9ucyYgdGhpc09iamVjdCwgSlNWYWx1
ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc19zdHJpbmdp
ZmllckF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNUZXN0Q0VSZWFjdGlvbnMmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0
byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMxMCwxMiArMzEwLDEyIEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1MKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5n
aWZpZXJBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlND
X0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENFUmVhY3Rpb25zX3N0cmluZ2lmaWVyQXR0
cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6c2V0PHNldEpTVGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXJBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0cmluZ2lmaWVyQXR0cmlidXRlIik7CisgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9ucz46OnNldDxzZXRKU1Rlc3RDRVJlYWN0aW9u
c19zdHJpbmdpZmllckF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAic3RyaW5naWZpZXJBdHRyaWJ1dGUiKTsKIH0KIAotc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25z
Tm90TmVlZGVkR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3RDRVJlYWN0aW9ucyYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RD
RVJlYWN0aW9uc19hdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWRHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdENFUmVhY3Rpb25zJiB0aGlzT2Jq
ZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMjMs
MTIgKzMyMywxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNBCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVXaXRoQ0VSZWFjdGlv
bnNOb3ROZWVkZWQoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENF
UmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDRVJlYWN0aW9uc19hdHRy
aWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewot
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpnZXQ8anNUZXN0Q0VS
ZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWRHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJhdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQiKTsKKyAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6Z2V0PGpzVGVzdENFUmVhY3Rpb25zX2F0dHJpYnV0
ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImF0dHJpYnV0ZVdpdGhD
RVJlYWN0aW9uc05vdE5lZWRlZCIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWRTZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdENFUmVhY3Rpb25zJiB0aGlzT2Jq
ZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENFUmVhY3Rp
b25zX2F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZFNldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q0VSZWFjdGlvbnMmIHRoaXNPYmplY3QsIEpT
VmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTM0MiwxMiArMzQyLDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDRVJlYWN0
aW9uc0EKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RDRVJlYWN0aW9uc19hdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpzZXQ8c2V0SlNUZXN0Q0VSZWFjdGlvbnNBdHRy
aWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWRTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5l
ZWRlZCIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpzZXQ8
c2V0SlNUZXN0Q0VSZWFjdGlvbnNfYXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJhdHRy
aWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5l
ZWRlZEdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q0VS
ZWFjdGlvbnMmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q0VSZWFj
dGlvbnNfcmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZEdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q0VSZWFjdGlvbnMmIHRoaXNP
YmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM1
NSwxMiArMzU1LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1IK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0YXR0cmlidXRld2l0aGNlcmVh
Y3Rpb25zbm90bmVlZGVkQXR0cikpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENF
UmVhY3Rpb25zX3JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFj
dGlvbnM+OjpnZXQ8anNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rp
b25zTm90TmVlZGVkR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0
aW9uc05vdE5lZWRlZCIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlv
bnM+OjpnZXQ8anNUZXN0Q0VSZWFjdGlvbnNfcmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9u
c05vdE5lZWRlZEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlv
bnNOb3ROZWVkZWQiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENFUmVhY3Rp
b25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZFNldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q0VSZWFjdGlvbnMmIHRoaXNPYmpl
Y3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlv
bnNfcmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZFNldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q0VSZWFjdGlvbnMmIHRoaXNPYmpl
Y3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTM3NCwxMiArMzc0LDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RD
RVJlYWN0aW9uc1IKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05v
dE5lZWRlZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q0VSZWFjdGlvbnNfcmVmbGVjdEF0dHJpYnV0ZVdpdGhD
RVJlYWN0aW9uc05vdE5lZWRlZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9ucz46OnNldDxzZXRK
U1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWRT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJl
ZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQiKTsKKyAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6c2V0PHNldEpTVGVzdENFUmVhY3Rpb25zX3Jl
ZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWRTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZmxlY3RBdHRyaWJ1dGVXaXRo
Q0VSZWFjdGlvbnNOb3ROZWVkZWQiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWRHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdENFUmVhY3Rpb25zJiB0aGlzT2JqZWN0
KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zX3N0cmluZ2lmaWVyQXR0
cmlidXRlTm90TmVlZGVkR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RDRVJlYWN0aW9ucyYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzg3LDEyICszODcsMTIgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zUwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExJbnRlcmZhY2U8VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXI+PihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwg
aW1wbC5zdHJpbmdpZmllckF0dHJpYnV0ZU5vdE5lZWRlZCgpKSkpOwogfQogCi1KU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZU5vdE5l
ZWRlZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0Q0VSZWFjdGlvbnNfc3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+
OjpnZXQ8anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZU5vdE5lZWRlZEdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgInN0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkIik7CisgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9ucz46OmdldDxqc1Rlc3RDRVJlYWN0aW9uc19z
dHJpbmdpZmllckF0dHJpYnV0ZU5vdE5lZWRlZEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0cmluZ2lmaWVy
QXR0cmlidXRlTm90TmVlZGVkIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RDRVJlYWN0aW9ucyYgdGhpc09iamVjdCwg
SlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc19z
dHJpbmdpZmllckF0dHJpYnV0ZU5vdE5lZWRlZFNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNUZXN0Q0VSZWFjdGlvbnMmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQxMCwx
MiArNDEwLDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1MKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENF
UmVhY3Rpb25zX3N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENF
UmVhY3Rpb25zPjo6c2V0PHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVO
b3ROZWVkZWRTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgInN0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkIik7CisgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9ucz46OnNldDxzZXRKU1Rlc3RDRVJlYWN0aW9uc19zdHJp
bmdpZmllckF0dHJpYnV0ZU5vdE5lZWRlZFNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQiKTsK
IH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25z
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ0VSZWFjdGlvbnNCb2R5KEpTQzo6SlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5
cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RDRVJlYWN0aW9ucz46OkNsYXNzUGFyYW1ldGVyIGNh
c3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q0VSZWFj
dGlvbnNQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoQ0VSZWFjdGlvbnNCb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RDRVJlYWN0aW9ucz46OkNsYXNzUGFyYW1l
dGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtNDI4LDEyICs0MjgsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
LUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aENFUmVhY3Rpb25zLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhDRVJlYWN0aW9ucywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDRVJlYWN0aW9ucz46OmNhbGw8
anNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDRVJlYWN0aW9uc0Jv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aENFUmVhY3Rp
b25zIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDRVJlYWN0aW9ucz46OmNhbGw8
anNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoQ0VSZWFjdGlvbnNC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhDRVJlYWN0
aW9ucyIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q0VS
ZWFjdGlvbnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZEJv
ZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdENFUmVhY3Rpb25zPjo6
Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhDRVJlYWN0
aW9uc05vdE5lZWRlZEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVz
dENFUmVhY3Rpb25zPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00NDYsOSArNDQ2LDkgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RD
RVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENFUmVhY3Rpb25zTm90TmVlZGVk
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlw
ZUZ1bmN0aW9uX21ldGhvZFdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDRVJlYWN0aW9ucz46OmNhbGw8anNUZXN0Q0VSZWFjdGlv
bnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZEJvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aENFUmVhY3Rpb25zTm90
TmVlZGVkIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDRVJlYWN0aW9ucz46OmNh
bGw8anNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoQ0VSZWFjdGlv
bnNOb3ROZWVkZWRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhv
ZFdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCIpOwogfQogCiBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rl
c3RDRVJlYWN0aW9uczo6c3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZtKQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5n
aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcAkocmV2aXNpb24gMjY4NTQ3
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVh
Y3Rpb25zU3RyaW5naWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCwxNiArNDgsMTYgQEAg
dXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0aW9uVG9T
dHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyUHJvdG90eXBlRnVuY3Rpb25fdG9TdHJpbmcpOwogCiAvLyBBdHRyaWJ1dGVzCiAKIEpT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0
cnVjdG9yKTsKIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q0VSZWFjdGlvbnNT
dHJpbmdpZmllckNvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlKTsKLUpTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91dFJlYWN0aW9u
cyk7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5n
aWZpZXJWYWx1ZVdpdGhvdXRSZWFjdGlvbnMpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyX3ZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcl92YWx1ZSk7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJfdmFsdWVXaXRob3V0
UmVhY3Rpb25zKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q0VSZWFjdGlv
bnNTdHJpbmdpZmllcl92YWx1ZVdpdGhvdXRSZWFjdGlvbnMpOwogCiBjbGFzcyBKU1Rlc3RDRVJl
YWN0aW9uc1N0cmluZ2lmaWVyUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5h
bE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xMTMsOSArMTEzLDkgQEAgdGVtcGxhdGU8PiBjb25zdCBD
bGFzc0luZm8gSlNUZXN0Q0VSZWFjdAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVz
dENFUmVhY3Rpb25zU3RyaW5naWZpZXJQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7
ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0
cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKSB9IH0sCi0g
ICAgeyAidmFsdWUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUp
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZSksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdENFUmVh
Y3Rpb25zU3RyaW5naWZpZXJWYWx1ZSkgfSB9LAotICAgIHsgInZhbHVlV2l0aG91dFJlYWN0aW9u
cyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21B
Y2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91dFJlYWN0aW9ucyksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVz
dENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVdpdGhvdXRSZWFjdGlvbnMpIH0gfSwKLSAgICB7
ICJ0b1N0cmluZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0aW9u
VG9TdHJpbmcpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAidmFsdWUiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXJfdmFsdWUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyX3ZhbHVl
KSB9IH0sCisgICAgeyAidmFsdWVXaXRob3V0UmVhY3Rpb25zIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyX3ZhbHVlV2l0aG91dFJlYWN0aW9ucyksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZp
ZXJfdmFsdWVXaXRob3V0UmVhY3Rpb25zKSB9IH0sCisgICAgeyAidG9TdHJpbmciLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXJQcm90b3R5cGVGdW5jdGlvbl90b1N0cmluZyksIChpbnRwdHJf
dCkgKDApIH0gfSwKIH07CiAKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllciIs
ICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNU
ZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3RvdHlwZSkgfTsKQEAgLTE5Nyw3ICsxOTcsNyBA
QCBKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q0VSZWFjCiAgICAgcmV0dXJuIHBy
b3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyJiB0aGlzT2Jq
ZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJf
dmFsdWVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXImIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6
OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIwNSwxMiArMjA1LDEyIEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1MKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLnZhbHVlKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJfdmFsdWUsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VS
ZWFjdGlvbnNTdHJpbmdpZmllcj46OmdldDxqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFs
dWVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJ2YWx1ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcj46OmdldDxqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lm
aWVyX3ZhbHVlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidmFsdWUiKTsKIH0KIAotc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVNldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllciYg
dGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyX3ZhbHVlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyJiB0aGlzT2JqZWN0LCBK
U1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yMjQsMTIgKzIyNCwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q0VSZWFj
dGlvbnNTCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENFUmVh
Y3Rpb25zU3RyaW5naWZpZXJfdmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
Zmllcj46OnNldDxzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInZhbHVlIik7Cisg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyPjo6c2V0
PHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJfdmFsdWVTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInZhbHVlIik7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVXaXRob3V0
UmVhY3Rpb25zR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJfdmFsdWVXaXRob3V0UmVhY3Rpb25zR2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RDRVJlYWN0aW9u
c1N0cmluZ2lmaWVyJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0yMzcsMTIgKzIzNywxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0Q0VSZWFjdGlvbnNTCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC52
YWx1ZVdpdGhvdXRSZWFjdGlvbnMoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVdpdGhvdXRSZWFjdGlvbnMsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXJfdmFsdWVXaXRob3V0UmVhY3Rpb25zLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZp
ZXI+OjpnZXQ8anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91dFJlYWN0aW9u
c0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgInZhbHVlV2l0aG91dFJlYWN0aW9ucyIpOworICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcj46OmdldDxqc1Rlc3RDRVJl
YWN0aW9uc1N0cmluZ2lmaWVyX3ZhbHVlV2l0aG91dFJlYWN0aW9uc0dldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
InZhbHVlV2l0aG91dFJlYWN0aW9ucyIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91dFJlYWN0aW9uc1NldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
ZmllciYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRK
U1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyX3ZhbHVlV2l0aG91dFJlYWN0aW9uc1NldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q0VSZWFjdGlvbnNTdHJp
bmdpZmllciYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjU2LDEyICsyNTYsMTIgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdENFUmVhY3Rpb25zUwogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVl
V2l0aG91dFJlYWN0aW9ucywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitK
U0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcl92
YWx1ZVdpdGhvdXRSZWFjdGlvbnMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmll
cj46OnNldDxzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVXaXRob3V0UmVhY3Rp
b25zU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJ2YWx1ZVdpdGhvdXRSZWFjdGlvbnMiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dENFUmVhY3Rpb25zU3RyaW5naWZpZXI+OjpzZXQ8c2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
Zmllcl92YWx1ZVdpdGhvdXRSZWFjdGlvbnNTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInZhbHVlV2l0aG91dFJlYWN0aW9ucyIpOwogfQogCi1z
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
ZmllclByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmdCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElE
TE9wZXJhdGlvbjxKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyPjo6Q2xhc3NQYXJhbWV0ZXIg
Y2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJl
YWN0aW9uc1N0cmluZ2lmaWVyUHJvdG90eXBlRnVuY3Rpb25fdG9TdHJpbmdCb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyPjo6
Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0yNzEsOSArMjcxLDkgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1Zh
bHVlOjplbmNvZGUodG9KUzxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBs
LnZhbHVlKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZywgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0
aW9uX3RvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENFUmVh
Y3Rpb25zU3RyaW5naWZpZXI+OjpjYWxsPGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJQcm90
b3R5cGVGdW5jdGlvblRvU3RyaW5nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJ0b1N0cmluZyIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Q0VSZWFjdGlv
bnNTdHJpbmdpZmllcj46OmNhbGw8anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3RvdHlw
ZUZ1bmN0aW9uX3RvU3RyaW5nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJ0b1N0cmluZyIpOwogfQogCiBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3RDRVJlYWN0aW9uc1N0
cmluZ2lmaWVyOjpzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0pCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENh
bGxUcmFjZXIuY3BwCShyZXZpc2lvbiAyNjg1NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTU2LDI2ICs1NiwyNiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAot
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rp
b25UZXN0T3BlcmF0aW9uSW50ZXJmYWNlKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvblNwZWNpZmllZCk7Ci1K
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlv
blRlc3RPcGVyYXRpb25XaXRoQXJndW1lbnRzKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhOdWxsYWJs
ZUFyZ3VtZW50KTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclBy
b3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhWYXJpYW50QXJndW1lbnQpOwotSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0
T3BlcmF0aW9uV2l0aE51bGxhYmxlVmFyaWFudEFyZ3VtZW50KTsKLUpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldp
dGhPcHRpb25hbFZhcmlhbnRBcmd1bWVudCk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoRGVmYXVsdFZh
cmlhbnRBcmd1bWVudCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENhbGxUcmFj
ZXJQcm90b3R5cGVGdW5jdGlvbl90ZXN0T3BlcmF0aW9uSW50ZXJmYWNlKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RPcGVy
YXRpb25TcGVjaWZpZWQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJh
Y2VyUHJvdG90eXBlRnVuY3Rpb25fdGVzdE9wZXJhdGlvbldpdGhBcmd1bWVudHMpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25fdGVz
dE9wZXJhdGlvbldpdGhOdWxsYWJsZUFyZ3VtZW50KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RPcGVyYXRpb25XaXRoVmFy
aWFudEFyZ3VtZW50KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNl
clByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RPcGVyYXRpb25XaXRoTnVsbGFibGVWYXJpYW50QXJndW1l
bnQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBl
RnVuY3Rpb25fdGVzdE9wZXJhdGlvbldpdGhPcHRpb25hbFZhcmlhbnRBcmd1bWVudCk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvbl90
ZXN0T3BlcmF0aW9uV2l0aERlZmF1bHRWYXJpYW50QXJndW1lbnQpOwogCiAvLyBBdHRyaWJ1dGVz
CiAKIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9y
KTsKIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q2FsbFRyYWNlckNvbnN0cnVj
dG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q2FsbFRyYWNlclRlc3RBdHRy
aWJ1dGVJbnRlcmZhY2UpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDYWxs
VHJhY2VyVGVzdEF0dHJpYnV0ZUludGVyZmFjZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlU3BlY2lmaWVkKTsKLUpTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQpOwot
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdp
dGhWYXJpYW50KTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q2FsbFRyYWNl
clRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudCk7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdENhbGxUcmFjZXJUZXN0UmVhZG9ubHlBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RDYWxsVHJhY2VyX3Rlc3RBdHRyaWJ1dGVJbnRlcmZhY2UpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDYWxsVHJhY2VyX3Rlc3RBdHRyaWJ1dGVJbnRl
cmZhY2UpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDYWxsVHJhY2VyX3Rlc3RB
dHRyaWJ1dGVTcGVjaWZpZWQpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RD
YWxsVHJhY2VyX3Rlc3RBdHRyaWJ1dGVTcGVjaWZpZWQpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RDYWxsVHJhY2VyX3Rlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudCk7CitKU0NfREVD
TEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENhbGxUcmFjZXJfdGVzdEF0dHJpYnV0ZVdpdGhW
YXJpYW50KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q2FsbFRyYWNlcl90ZXN0
UmVhZG9ubHlBdHRyaWJ1dGUpOwogCiBjbGFzcyBKU1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlIGZp
bmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNDEsMTgg
KzE0MSwxOCBAQCB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RDYWxsVHJhCiBzdGF0
aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZVRhYmxlVmFs
dWVzW10gPQogewogICAgIHsgImNvbnN0cnVjdG9yIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDYWxsVHJhY2Vy
Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihzZXRKU1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IpIH0gfSwKLSAgICB7ICJ0
ZXN0QXR0cmlidXRlSW50ZXJmYWNlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9N
QXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZUludGVyZmFj
ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlSW50ZXJmYWNlKSB9IH0sCi0gICAgeyAi
dGVzdEF0dHJpYnV0ZVNwZWNpZmllZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRP
TUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZp
ZWQpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PihzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVNwZWNpZmllZCkgfSB9LAotICAgIHsg
InRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRo
VmFyaWFudCksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlV2l0aFZhcmlhbnQpIH0gfSwK
LSAgICB7ICJ0ZXN0UmVhZG9ubHlBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpD
dXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0Q2FsbFRyYWNlclRlc3RSZWFkb25seUF0dHJpYnV0ZSksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKLSAgICB7
ICJ0ZXN0T3BlcmF0aW9uSW50ZXJmYWNlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rp
b25UZXN0T3BlcmF0aW9uSW50ZXJmYWNlKSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgInRl
c3RPcGVyYXRpb25TcGVjaWZpZWQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRl
c3RPcGVyYXRpb25TcGVjaWZpZWQpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAidGVzdE9w
ZXJhdGlvbldpdGhBcmd1bWVudHMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRl
c3RPcGVyYXRpb25XaXRoQXJndW1lbnRzKSwgKGludHB0cl90KSAoMykgfSB9LAotICAgIHsgInRl
c3RPcGVyYXRpb25XaXRoTnVsbGFibGVBcmd1bWVudCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlw
ZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhOdWxsYWJsZUFyZ3VtZW50KSwgKGludHB0cl90KSAo
MSkgfSB9LAotICAgIHsgInRlc3RPcGVyYXRpb25XaXRoVmFyaWFudEFyZ3VtZW50Iiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RD
YWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aFZhcmlhbnRBcmd1bWVu
dCksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJ0ZXN0T3BlcmF0aW9uV2l0aE51bGxhYmxl
VmFyaWFudEFyZ3VtZW50Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJh
d05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3Bl
cmF0aW9uV2l0aE51bGxhYmxlVmFyaWFudEFyZ3VtZW50KSwgKGludHB0cl90KSAoMSkgfSB9LAot
ICAgIHsgInRlc3RPcGVyYXRpb25XaXRoT3B0aW9uYWxWYXJpYW50QXJndW1lbnQiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdENh
bGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoT3B0aW9uYWxWYXJpYW50
QXJndW1lbnQpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAidGVzdE9wZXJhdGlvbldpdGhE
ZWZhdWx0VmFyaWFudEFyZ3VtZW50Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25U
ZXN0T3BlcmF0aW9uV2l0aERlZmF1bHRWYXJpYW50QXJndW1lbnQpLCAoaW50cHRyX3QpICgwKSB9
IH0sCisgICAgeyAidGVzdEF0dHJpYnV0ZUludGVyZmFjZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q2FsbFRyYWNlcl90ZXN0QXR0
cmlidXRlSW50ZXJmYWNlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0Q2FsbFRyYWNlcl90ZXN0QXR0cmlidXRlSW50ZXJmYWNl
KSB9IH0sCisgICAgeyAidGVzdEF0dHJpYnV0ZVNwZWNpZmllZCIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q2FsbFRyYWNlcl90ZXN0
QXR0cmlidXRlU3BlY2lmaWVkKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0Q2FsbFRyYWNlcl90ZXN0QXR0cmlidXRlU3BlY2lm
aWVkKSB9IH0sCisgICAgeyAidGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50Iiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDYWxsVHJhY2Vy
X3Rlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudCksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdENhbGxUcmFjZXJfdGVzdEF0dHJpYnV0
ZVdpdGhWYXJpYW50KSB9IH0sCisgICAgeyAidGVzdFJlYWRvbmx5QXR0cmlidXRlIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdENhbGxUcmFjZXJfdGVzdFJlYWRvbmx5QXR0
cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oMCkgfSB9LAorICAgIHsgInRlc3RPcGVyYXRpb25JbnRlcmZhY2UiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdENhbGxU
cmFjZXJQcm90b3R5cGVGdW5jdGlvbl90ZXN0T3BlcmF0aW9uSW50ZXJmYWNlKSwgKGludHB0cl90
KSAoMCkgfSB9LAorICAgIHsgInRlc3RPcGVyYXRpb25TcGVjaWZpZWQiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdENhbGxUcmFj
ZXJQcm90b3R5cGVGdW5jdGlvbl90ZXN0T3BlcmF0aW9uU3BlY2lmaWVkKSwgKGludHB0cl90KSAo
MCkgfSB9LAorICAgIHsgInRlc3RPcGVyYXRpb25XaXRoQXJndW1lbnRzIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RDYWxsVHJh
Y2VyUHJvdG90eXBlRnVuY3Rpb25fdGVzdE9wZXJhdGlvbldpdGhBcmd1bWVudHMpLCAoaW50cHRy
X3QpICgzKSB9IH0sCisgICAgeyAidGVzdE9wZXJhdGlvbldpdGhOdWxsYWJsZUFyZ3VtZW50Iiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25fdGVzdE9wZXJhdGlvbldpdGhOdWxsYWJs
ZUFyZ3VtZW50KSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgInRlc3RPcGVyYXRpb25XaXRo
VmFyaWFudEFyZ3VtZW50Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJh
d05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25fdGVzdE9w
ZXJhdGlvbldpdGhWYXJpYW50QXJndW1lbnQpLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAi
dGVzdE9wZXJhdGlvbldpdGhOdWxsYWJsZVZhcmlhbnRBcmd1bWVudCIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0Q2FsbFRyYWNl
clByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RPcGVyYXRpb25XaXRoTnVsbGFibGVWYXJpYW50QXJndW1l
bnQpLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAidGVzdE9wZXJhdGlvbldpdGhPcHRpb25h
bFZhcmlhbnRBcmd1bWVudCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxS
YXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RP
cGVyYXRpb25XaXRoT3B0aW9uYWxWYXJpYW50QXJndW1lbnQpLCAoaW50cHRyX3QpICgwKSB9IH0s
CisgICAgeyAidGVzdE9wZXJhdGlvbldpdGhEZWZhdWx0VmFyaWFudEFyZ3VtZW50Iiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RD
YWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25fdGVzdE9wZXJhdGlvbldpdGhEZWZhdWx0VmFyaWFu
dEFyZ3VtZW50KSwgKGludHB0cl90KSAoMCkgfSB9LAogICAgIHsgInRlc3RDb25zdFZhbHVlIiwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q29uc3RhbnRJbnRlZ2VyLCBO
b0ludHJpbnNpYywgeyAobG9uZyBsb25nKShmYWxzZSkgfSB9LAogfTsKIApAQCAtMjM1LDcgKzIz
NSw3IEBAIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDYWxsVHIKICAgICByZXR1
cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9y
LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZUludGVyZmFjZUdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q2FsbFRyYWNlciYgdGhpc09iamVj
dCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyX3Rlc3RBdHRyaWJ1dGVJ
bnRlcmZhY2VHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVz
dENhbGxUcmFjZXImIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTI0NSwxMiArMjQ1LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RDYWxsVHJhY2VyVGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMQm9vbGVhbj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC50ZXN0
QXR0cmlidXRlSW50ZXJmYWNlKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZUludGVyZmFjZSwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q2FsbFRyYWNlcl90ZXN0QXR0cmli
dXRlSW50ZXJmYWNlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdENhbGxUcmFjZXI+OjpnZXQ8anNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1
dGVJbnRlcmZhY2VHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0QXR0cmlidXRlSW50ZXJmYWNlIik7Cisg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDYWxsVHJhY2VyPjo6Z2V0PGpzVGVzdENhbGxU
cmFjZXJfdGVzdEF0dHJpYnV0ZUludGVyZmFjZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3RBdHRyaWJ1
dGVJbnRlcmZhY2UiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENhbGxUcmFj
ZXJUZXN0QXR0cmlidXRlSW50ZXJmYWNlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1Rlc3RDYWxsVHJhY2VyJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQor
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENhbGxUcmFjZXJfdGVzdEF0dHJpYnV0ZUludGVy
ZmFjZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q2Fs
bFRyYWNlciYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjY1LDEyICsyNjUsMTIgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdENhbGxUcmFjZXJUZQogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVJbnRl
cmZhY2UsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdENhbGxUcmFjZXJfdGVzdEF0dHJpYnV0ZUludGVyZmFjZSwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RDYWxsVHJhY2VyPjo6c2V0PHNldEpTVGVzdENhbGxUcmFjZXJUZXN0QXR0
cmlidXRlSW50ZXJmYWNlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJ0ZXN0QXR0cmlidXRlSW50ZXJmYWNlIik7CisgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RDYWxsVHJhY2VyPjo6c2V0PHNldEpTVGVzdENhbGxUcmFjZXJfdGVzdEF0
dHJpYnV0ZUludGVyZmFjZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAidGVzdEF0dHJpYnV0ZUludGVyZmFjZSIpOwogfQogCi1zdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWRHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdENhbGxUcmFjZXImIHRo
aXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlcl90ZXN0QXR0
cmlidXRlU3BlY2lmaWVkR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RDYWxsVHJhY2VyJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0yODAsMTIgKzI4MCwxMiBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0Q2FsbFRyYWNlclRlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETEJvb2xlYW4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwudGVzdEF0dHJpYnV0ZVNwZWNpZmllZCgpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENhbGxUcmFjZXJfdGVz
dEF0dHJpYnV0ZVNwZWNpZmllZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RDYWxsVHJhY2VyPjo6Z2V0PGpzVGVzdENhbGxUcmFjZXJUZXN0
QXR0cmlidXRlU3BlY2lmaWVkR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGVzdEF0dHJpYnV0ZVNwZWNpZmll
ZCIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q2FsbFRyYWNlcj46OmdldDxqc1Rl
c3RDYWxsVHJhY2VyX3Rlc3RBdHRyaWJ1dGVTcGVjaWZpZWRHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0
QXR0cmlidXRlU3BlY2lmaWVkIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RD
YWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVNwZWNpZmllZFNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q2FsbFRyYWNlciYgdGhpc09iamVjdCwgSlNWYWx1ZSB2
YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDYWxsVHJhY2VyX3Rlc3RBdHRyaWJ1
dGVTcGVjaWZpZWRTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VGVzdENhbGxUcmFjZXImIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYg
dm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMwMCwxMiArMzAwLDEyIEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDYWxsVHJhY2VyVGUKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENhbGxUcmFjZXJUZXN0QXR0cmli
dXRlU3BlY2lmaWVkLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDYWxsVHJhY2VyX3Rlc3RBdHRyaWJ1dGVTcGVj
aWZpZWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0Q2FsbFRyYWNlcj46OnNldDxzZXRKU1Rlc3RDYWxsVHJhY2Vy
VGVzdEF0dHJpYnV0ZVNwZWNpZmllZFNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAidGVzdEF0dHJpYnV0ZVNwZWNpZmllZCIpOworICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0Q2FsbFRyYWNlcj46OnNldDxzZXRKU1Rlc3RDYWxsVHJhY2Vy
X3Rlc3RBdHRyaWJ1dGVTcGVjaWZpZWRTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgInRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQiKTsKIH0KIAotc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlV2l0aFZhcmlh
bnRHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdENhbGxU
cmFjZXImIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q2FsbFRyYWNl
cl90ZXN0QXR0cmlidXRlV2l0aFZhcmlhbnRHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdENhbGxUcmFjZXImIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYg
dm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMxNSwxMiArMzE1LDEyIEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyVGUKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5pb248SURMQm9vbGVhbiwgSURMRmxvYXQsIElETERP
TVN0cmluZz4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgp
LCB0aHJvd1Njb3BlLCBpbXBsLnRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudCgpKSkpOwogfQogCi1K
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRo
VmFyaWFudCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0Q2FsbFRyYWNlcl90ZXN0QXR0cmlidXRlV2l0aFZhcmlhbnQsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q2FsbFRyYWNlcj46Omdl
dDxqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50R2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAidGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RDYWxsVHJhY2VyPjo6Z2V0PGpzVGVzdENhbGxUcmFjZXJfdGVzdEF0dHJpYnV0ZVdpdGhW
YXJpYW50R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50Iik7CiB9CiAK
LXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdpdGhW
YXJpYW50U2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RD
YWxsVHJhY2VyJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdENhbGxUcmFjZXJfdGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50U2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RDYWxsVHJhY2VyJiB0aGlzT2Jq
ZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0zMzUsMTIgKzMzNSwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
Q2FsbFRyYWNlclRlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50LCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RDYWxsVHJhY2VyX3Rlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudCwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RDYWxsVHJhY2VyPjo6c2V0PHNldEpTVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlV2l0aFZh
cmlhbnRTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgInRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudCIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0Q2FsbFRyYWNlcj46OnNldDxzZXRKU1Rlc3RDYWxsVHJhY2VyX3Rlc3RBdHRyaWJ1dGVX
aXRoVmFyaWFudFNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAidGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyVGVzdFJlYWRvbmx5QXR0cmlidXRlR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RDYWxsVHJhY2VyJiB0aGlzT2Jq
ZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJfdGVzdFJlYWRvbmx5
QXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3RDYWxsVHJhY2VyJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0zNDgsMTIgKzM0OCwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0Q2FsbFRyYWNlclRlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETEJvb2xlYW4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudGVz
dFJlYWRvbmx5QXR0cmlidXRlKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RDYWxsVHJhY2VyVGVzdFJlYWRvbmx5QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDYWxsVHJhY2VyX3Rlc3RSZWFkb25s
eUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RDYWxsVHJhY2VyPjo6Z2V0PGpzVGVzdENhbGxUcmFjZXJUZXN0UmVhZG9ubHlB
dHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0UmVhZG9ubHlBdHRyaWJ1dGUiKTsKKyAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENhbGxUcmFjZXI+OjpnZXQ8anNUZXN0Q2FsbFRyYWNl
cl90ZXN0UmVhZG9ubHlBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0UmVhZG9ubHlBdHRy
aWJ1dGUiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENh
bGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25JbnRlcmZhY2VCb2R5KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxs
RnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RDYWxsVHJhY2VyPjo6Q2xhc3NQYXJh
bWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25fdGVzdE9wZXJhdGlvbkludGVyZmFjZUJvZHko
SlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdENhbGxUcmFjZXI+OjpDbGFz
c1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTM2NywxMiArMzY3LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlw
ZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbkludGVyZmFjZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RPcGVyYXRpb25JbnRl
cmZhY2UsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Q2FsbFRyYWNlcj46
OmNhbGw8anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbkludGVy
ZmFjZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdE9wZXJhdGlv
bkludGVyZmFjZSIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Q2FsbFRyYWNlcj46
OmNhbGw8anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RPcGVyYXRpb25JbnRl
cmZhY2VCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RPcGVyYXRp
b25JbnRlcmZhY2UiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25TcGVjaWZpZWRCb2R5
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1l
KiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RDYWxsVHJhY2VyPjo6Q2xh
c3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25fdGVzdE9wZXJhdGlvblNwZWNpZmll
ZEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdENhbGxUcmFjZXI+
OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTM4NiwxMiArMzg2LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclBy
b3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvblNwZWNpZmllZCwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RPcGVyYXRp
b25TcGVjaWZpZWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Q2FsbFRy
YWNlcj46OmNhbGw8anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlv
blNwZWNpZmllZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdE9w
ZXJhdGlvblNwZWNpZmllZCIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Q2FsbFRy
YWNlcj46OmNhbGw8anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RPcGVyYXRp
b25TcGVjaWZpZWRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RP
cGVyYXRpb25TcGVjaWZpZWQiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoQXJn
dW1lbnRzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6
OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0Q2FsbFRy
YWNlcj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RPcGVyYXRp
b25XaXRoQXJndW1lbnRzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNU
ZXN0Q2FsbFRyYWNlcj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDE2LDEyICs0MTYsMTIgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aEFyZ3VtZW50cywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1
bmN0aW9uX3Rlc3RPcGVyYXRpb25XaXRoQXJndW1lbnRzLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdENhbGxUcmFjZXI+OjpjYWxsPGpzVGVzdENhbGxUcmFjZXJQcm90b3R5
cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoQXJndW1lbnRzQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0T3BlcmF0aW9uV2l0aEFyZ3VtZW50cyIpOworICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0Q2FsbFRyYWNlcj46OmNhbGw8anNUZXN0Q2FsbFRyYWNl
clByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RPcGVyYXRpb25XaXRoQXJndW1lbnRzQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0T3BlcmF0aW9uV2l0aEFyZ3VtZW50cyIp
OwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNl
clByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhOdWxsYWJsZUFyZ3VtZW50Qm9keShK
U0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSog
Y2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0Q2FsbFRyYWNlcj46OkNsYXNz
UGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RPcGVyYXRpb25XaXRoTnVsbGFi
bGVBcmd1bWVudEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdENh
bGxUcmFjZXI+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ0MCwxMiArNDQwLDEyIEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2Fs
bFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhOdWxsYWJsZUFyZ3VtZW50
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBl
RnVuY3Rpb25fdGVzdE9wZXJhdGlvbldpdGhOdWxsYWJsZUFyZ3VtZW50LCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENhbGxUcmFjZXI+OjpjYWxsPGpzVGVzdENhbGxUcmFj
ZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoTnVsbGFibGVBcmd1bWVudEJvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdE9wZXJhdGlvbldpdGhOdWxs
YWJsZUFyZ3VtZW50Iik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDYWxsVHJhY2Vy
Pjo6Y2FsbDxqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25fdGVzdE9wZXJhdGlvbldp
dGhOdWxsYWJsZUFyZ3VtZW50Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJ0ZXN0T3BlcmF0aW9uV2l0aE51bGxhYmxlQXJndW1lbnQiKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRl
c3RPcGVyYXRpb25XaXRoVmFyaWFudEFyZ3VtZW50Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJ
RExPcGVyYXRpb248SlNUZXN0Q2FsbFRyYWNlcj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMp
CitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclByb3Rv
dHlwZUZ1bmN0aW9uX3Rlc3RPcGVyYXRpb25XaXRoVmFyaWFudEFyZ3VtZW50Qm9keShKU0M6OkpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZy
YW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0Q2FsbFRyYWNlcj46OkNsYXNzUGFyYW1l
dGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtNDY0LDEyICs0NjQsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
LUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rp
b25UZXN0T3BlcmF0aW9uV2l0aFZhcmlhbnRBcmd1bWVudCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RPcGVyYXRpb25X
aXRoVmFyaWFudEFyZ3VtZW50LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dENhbGxUcmFjZXI+OjpjYWxsPGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RP
cGVyYXRpb25XaXRoVmFyaWFudEFyZ3VtZW50Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJ0ZXN0T3BlcmF0aW9uV2l0aFZhcmlhbnRBcmd1bWVudCIpOworICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0Q2FsbFRyYWNlcj46OmNhbGw8anNUZXN0Q2FsbFRyYWNlclBy
b3RvdHlwZUZ1bmN0aW9uX3Rlc3RPcGVyYXRpb25XaXRoVmFyaWFudEFyZ3VtZW50Qm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0T3BlcmF0aW9uV2l0aFZhcmlhbnRB
cmd1bWVudCIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhOdWxsYWJsZVZhcmlh
bnRBcmd1bWVudEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdENh
bGxUcmFjZXI+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvbl90ZXN0T3Bl
cmF0aW9uV2l0aE51bGxhYmxlVmFyaWFudEFyZ3VtZW50Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFt
ZSBJRExPcGVyYXRpb248SlNUZXN0Q2FsbFRyYWNlcj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRo
aXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDg4LDEy
ICs0ODgsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0
aW9uV2l0aE51bGxhYmxlVmFyaWFudEFyZ3VtZW50LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25fdGVzdE9wZXJhdGlvbldpdGhO
dWxsYWJsZVZhcmlhbnRBcmd1bWVudCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RDYWxsVHJhY2VyPjo6Y2FsbDxqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25U
ZXN0T3BlcmF0aW9uV2l0aE51bGxhYmxlVmFyaWFudEFyZ3VtZW50Qm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0T3BlcmF0aW9uV2l0aE51bGxhYmxlVmFyaWFudEFy
Z3VtZW50Iik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDYWxsVHJhY2VyPjo6Y2Fs
bDxqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25fdGVzdE9wZXJhdGlvbldpdGhOdWxs
YWJsZVZhcmlhbnRBcmd1bWVudEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAidGVzdE9wZXJhdGlvbldpdGhOdWxsYWJsZVZhcmlhbnRBcmd1bWVudCIpOwogfQogCi1zdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1
bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhPcHRpb25hbFZhcmlhbnRBcmd1bWVudEJvZHkoSlNDOjpK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdENhbGxUcmFjZXI+OjpDbGFzc1BhcmFt
ZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvbl90ZXN0T3BlcmF0aW9uV2l0aE9wdGlvbmFsVmFy
aWFudEFyZ3VtZW50Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0
Q2FsbFRyYWNlcj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTEwLDEyICs1MTAsMTIgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RD
YWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aE9wdGlvbmFsVmFyaWFu
dEFyZ3VtZW50LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2Vy
UHJvdG90eXBlRnVuY3Rpb25fdGVzdE9wZXJhdGlvbldpdGhPcHRpb25hbFZhcmlhbnRBcmd1bWVu
dCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDYWxsVHJhY2VyPjo6Y2Fs
bDxqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aE9wdGlv
bmFsVmFyaWFudEFyZ3VtZW50Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJ0ZXN0T3BlcmF0aW9uV2l0aE9wdGlvbmFsVmFyaWFudEFyZ3VtZW50Iik7CisgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RDYWxsVHJhY2VyPjo6Y2FsbDxqc1Rlc3RDYWxsVHJhY2VyUHJv
dG90eXBlRnVuY3Rpb25fdGVzdE9wZXJhdGlvbldpdGhPcHRpb25hbFZhcmlhbnRBcmd1bWVudEJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdE9wZXJhdGlvbldpdGhP
cHRpb25hbFZhcmlhbnRBcmd1bWVudCIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldp
dGhEZWZhdWx0VmFyaWFudEFyZ3VtZW50Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVy
YXRpb248SlNUZXN0Q2FsbFRyYWNlcj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1
bmN0aW9uX3Rlc3RPcGVyYXRpb25XaXRoRGVmYXVsdFZhcmlhbnRBcmd1bWVudEJvZHkoSlNDOjpK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdENhbGxUcmFjZXI+OjpDbGFzc1BhcmFt
ZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTUzMiw5ICs1MzIsOSBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAot
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlv
blRlc3RPcGVyYXRpb25XaXRoRGVmYXVsdFZhcmlhbnRBcmd1bWVudCwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RPcGVy
YXRpb25XaXRoRGVmYXVsdFZhcmlhbnRBcmd1bWVudCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RDYWxsVHJhY2VyPjo6Y2FsbDxqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBl
RnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aERlZmF1bHRWYXJpYW50QXJndW1lbnRCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RPcGVyYXRpb25XaXRoRGVmYXVsdFZh
cmlhbnRBcmd1bWVudCIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Q2FsbFRyYWNl
cj46OmNhbGw8anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RPcGVyYXRpb25X
aXRoRGVmYXVsdFZhcmlhbnRBcmd1bWVudEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAidGVzdE9wZXJhdGlvbldpdGhEZWZhdWx0VmFyaWFudEFyZ3VtZW50Iik7CiB9CiAK
IEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVzdENhbGxUcmFjZXI6OnN1YnNwYWNlRm9ySW1wbChKU0M6
OlZNJiB2bSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcy5jcHAJ
KHJldmlzaW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjMs
NDkgKzYzLDQ5IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAvLyBGdW5jdGlvbnMKIAogI2lmIChF
TkFCTEUoQ29uZGl0aW9uMTIpICYmIEVOQUJMRShDb25kaXRpb24yMikpIHx8IEVOQUJMRShDb25k
aXRpb24yMykKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Q29uZGl0aW9uYWxJbmNs
dWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25fbWl4aW5P
cGVyYXRpb24pOwogI2VuZGlmCiAjaWYgKEVOQUJMRShDb25kaXRpb24xMikgJiYgRU5BQkxFKENv
bmRpdGlvbjIyKSkgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbXBs
ZXhPcGVyYXRpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDb25kaXRpb25h
bEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25fbWl4aW5Db21wbGV4T3BlcmF0aW9uKTsKICNlbmRp
ZgogI2lmIChFTkFCTEUoQ29uZGl0aW9uMTIpICYmIEVOQUJMRShDb25kaXRpb24yMikpIHx8IEVO
QUJMRShDb25kaXRpb24yMykKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5DdXN0b21PcGVyYXRpb24pOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBl
RnVuY3Rpb25fbWl4aW5DdXN0b21PcGVyYXRpb24pOwogI2VuZGlmCiAjaWYgKEVOQUJMRShDb25k
aXRpb24xMSkgJiYgRU5BQkxFKENvbmRpdGlvbjEyKSAmJiBFTkFCTEUoQ29uZGl0aW9uMjIpKSB8
fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluQ29uZGl0aW9uYWxPcGVyYXRp
b24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVz
UHJvdG90eXBlRnVuY3Rpb25fbWl4aW5Db25kaXRpb25hbE9wZXJhdGlvbik7CiAjZW5kaWYKICNp
ZiAoRU5BQkxFKENvbmRpdGlvbjEyKSAmJiBFTkFCTEUoQ29uZGl0aW9uMjIpKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMjMpCi1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluU2V0dGluZ3NDb25kaXRpb25hbE9wZXJhdGlv
bik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQ
cm90b3R5cGVGdW5jdGlvbl9taXhpblNldHRpbmdzQ29uZGl0aW9uYWxPcGVyYXRpb24pOwogI2Vu
ZGlmCiAjaWYgKEVOQUJMRShDb25kaXRpb24xMikgJiYgRU5BQkxFKENvbmRpdGlvbjIyKSkgfHwg
RU5BQkxFKENvbmRpdGlvbjIzKQotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9u
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1By
b3RvdHlwZUZ1bmN0aW9uX21peGluUmVzdWx0RmllbGRPcGVyYXRpb24pOwogI2VuZGlmCiAjaWYg
KEVOQUJMRShDb25kaXRpb24xMikgJiYgRU5BQkxFKENvbmRpdGlvbjIyKSAmJiBFTkFCTEUoQ29u
ZGl0aW9uMzMpKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvblBhcnRpYWxNaXhp
bk9wZXJhdGlvbkZyb21QYXJ0aWFsKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uX3BhcnRpYWxNaXhpbk9wZXJhdGlv
bkZyb21QYXJ0aWFsKTsKICNlbmRpZgogCiAvLyBBdHRyaWJ1dGVzCiAKIEpTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKTsKIEpTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVj
dG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRl
c1Rlc3RBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxJ
bmNsdWRlc190ZXN0QXR0cik7CiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMjMpCi1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXNNaXhpblJlYWRPbmx5QXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc19taXhpblJlYWRPbmx5QXR0cmlidXRlKTsKICNlbmRp
ZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1
dGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1
ZGVzTWl4aW5BdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzX21peGluQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc19taXhpbkF0dHJpYnV0ZSk7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQ3VzdG9tQXR0
cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxJ
bmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc19taXhpbkN1c3RvbUF0dHJpYnV0ZSk7CitKU0NfREVD
TEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNfbWl4aW5DdXN0
b21BdHRyaWJ1dGUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMjMpCi1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5Ob2RlQXR0cmlidXRlKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc19taXhpbk5vZGVBdHRy
aWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzX21peGluTm9kZUF0dHJpYnV0ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9u
MjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1BhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc19wYXJ0
aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbCk7CiAjZW5kaWYKIAogY2xhc3MgSlNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxP
YmplY3QgewpAQCAtMjE4LDY0ICsyMTgsNjQgQEAgdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8g
SlNUZXN0Q29uZGl0aQogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXNQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3Rv
ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAidGVzdEF0dHIiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Rl
c3RBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oMCkgfSB9LAorICAgIHsgInRlc3RBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNfdGVzdEF0dHIpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAjaWYgRU5B
QkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi0gICAgeyAibWl4aW5SZWFk
T25seUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzTWl4aW5SZWFkT25seUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJtaXhp
blJlYWRPbmx5QXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNz
b3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNfbWl4aW5SZWFkT25seUF0dHJpYnV0ZSksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKICNlbHNl
CiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIEVOQUJM
RShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsgIm1peGluQXR0cmli
dXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RDb25kaXRp
b25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJtaXhpbkF0dHJpYnV0ZSIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nl
c3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlc19taXhpbkF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNfbWl4aW5BdHRyaWJ1dGUpIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJp
bnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5B
QkxFKENvbmRpdGlvbjIzKQotICAgIHsgIm1peGluQ3VzdG9tQXR0cmlidXRlIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDb25kaXRp
b25hbEluY2x1ZGVzTWl4aW5DdXN0b21BdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1
ZGVzTWl4aW5DdXN0b21BdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJtaXhpbkN1c3RvbUF0dHJpYnV0
ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21B
Y2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc19taXhpbkN1c3RvbUF0dHJpYnV0ZSksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXNfbWl4aW5DdXN0b21BdHRyaWJ1dGUpIH0gfSwKICNlbHNlCiAgICAg
eyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25k
aXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsgIm1peGluTm9kZUF0dHJpYnV0
ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21B
Y2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluTm9kZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdENvbmRp
dGlvbmFsSW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJtaXhpbk5vZGVB
dHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNfbWl4aW5Ob2RlQXR0cmlidXRlKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlc19taXhpbk5vZGVBdHRyaWJ1dGUpIH0gfSwKICNlbHNlCiAg
ICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIEVOQUJMRShD
b25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsgInBhcnRpYWxNaXhpbkF0
dHJpYnV0ZUZyb21QYXJ0aWFsIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNz
b3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNQYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbCksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0g
fSwKKyAgICB7ICJwYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbCIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9N
QXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzX3BhcnRpYWxNaXhp
bkF0dHJpYnV0ZUZyb21QYXJ0aWFsKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmlu
c2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCiAjaWYgKEVOQUJMRShDb25kaXRpb24xMikgJiYgRU5B
QkxFKENvbmRpdGlvbjIyKSkgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsgIm1peGluT3Bl
cmF0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1
bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbk9w
ZXJhdGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJtaXhpbk9wZXJhdGlvbiIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uX21peGluT3BlcmF0aW9uKSwg
KGludHB0cl90KSAoMCkgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAs
IDAgfSB9LAogI2VuZGlmCiAjaWYgKEVOQUJMRShDb25kaXRpb24xMikgJiYgRU5BQkxFKENvbmRp
dGlvbjIyKSkgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsgIm1peGluQ29tcGxleE9wZXJh
dGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5j
dGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5j
dGlvbj4oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db21w
bGV4T3BlcmF0aW9uKSwgKGludHB0cl90KSAoMikgfSB9LAorICAgIHsgIm1peGluQ29tcGxleE9w
ZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpG
dW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVG
dW5jdGlvbj4oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uX21peGlu
Q29tcGxleE9wZXJhdGlvbiksIChpbnRwdHJfdCkgKDIpIH0gfSwKICNlbHNlCiAgICAgeyAwLCAw
LCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIChFTkFCTEUoQ29uZGl0aW9u
MTIpICYmIEVOQUJMRShDb25kaXRpb24yMikpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLSAgICB7
ICJtaXhpbkN1c3RvbU9wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlw
ZUZ1bmN0aW9uTWl4aW5DdXN0b21PcGVyYXRpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAg
eyAibWl4aW5DdXN0b21PcGVyYXRpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5
cGVGdW5jdGlvbl9taXhpbkN1c3RvbU9wZXJhdGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwKICNl
bHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIChF
TkFCTEUoQ29uZGl0aW9uMTEpICYmIEVOQUJMRShDb25kaXRpb24xMikgJiYgRU5BQkxFKENvbmRp
dGlvbjIyKSkgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsgIm1peGluQ29uZGl0aW9uYWxP
cGVyYXRpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZl
RnVuY3Rpb24+KGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGlu
Q29uZGl0aW9uYWxPcGVyYXRpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAibWl4aW5D
b25kaXRpb25hbE9wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1
bmN0aW9uX21peGluQ29uZGl0aW9uYWxPcGVyYXRpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCiAj
ZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKICNpZiAo
RU5BQkxFKENvbmRpdGlvbjEyKSAmJiBFTkFCTEUoQ29uZGl0aW9uMjIpKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMjMpCi0gICAgeyAibWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpblNldHRpbmdzQ29uZGl0
aW9uYWxPcGVyYXRpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAibWl4aW5TZXR0aW5n
c0NvbmRpdGlvbmFsT3BlcmF0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBl
RnVuY3Rpb25fbWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uKSwgKGludHB0cl90KSAo
MCkgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2Vu
ZGlmCiAjaWYgKEVOQUJMRShDb25kaXRpb24xMikgJiYgRU5BQkxFKENvbmRpdGlvbjIyKSkgfHwg
RU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsgIm1peGluUmVzdWx0RmllbGRPcGVyYXRpb24iLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluUmVzdWx0RmllbGRP
cGVyYXRpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAibWl4aW5SZXN1bHRGaWVsZE9w
ZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpG
dW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVG
dW5jdGlvbj4oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uX21peGlu
UmVzdWx0RmllbGRPcGVyYXRpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCiAjZWxzZQogICAgIHsg
MCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKICNpZiAoRU5BQkxFKENvbmRp
dGlvbjEyKSAmJiBFTkFCTEUoQ29uZGl0aW9uMjIpICYmIEVOQUJMRShDb25kaXRpb24zMykpIHx8
IEVOQUJMRShDb25kaXRpb24yMykKLSAgICB7ICJwYXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9tUGFy
dGlhbCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5j
dGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5j
dGlvbj4oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uUGFydGlhbE1p
eGluT3BlcmF0aW9uRnJvbVBhcnRpYWwpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAicGFy
dGlhbE1peGluT3BlcmF0aW9uRnJvbVBhcnRpYWwiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQ
cm90b3R5cGVGdW5jdGlvbl9wYXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9tUGFydGlhbCksIChpbnRw
dHJfdCkgKDApIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0g
fSwKICNlbmRpZgpAQCAtNTEzLDcgKzUxMyw3IEBAIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RDb25kaXQKICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZtLnBy
b3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7
CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzVGVz
dEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXMmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlc190ZXN0QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcyYgdGhpc09iamVjdCkK
IHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTIxLDEzICs1
MjEsMTMgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSQogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExEb3VibGU+KGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudGVzdEF0dHIoKSkpKTsKIH0KIAotSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNUZXN0QXR0ciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9u
YWxJbmNsdWRlc190ZXN0QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Z2V0PGpzVGVzdENvbmRp
dGlvbmFsSW5jbHVkZXNUZXN0QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3RBdHRyIik7CisgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Z2V0PGpzVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNfdGVzdEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0QXR0ciIp
OwogfQogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1z
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluUmVhZE9u
bHlBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXMmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc19taXhpblJlYWRPbmx5QXR0cmlidXRlR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC01MzUsMTUgKzUzNSwxNSBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
Q29uZGl0aW9uYWxJCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5taXhpblJl
YWRPbmx5QXR0cmlidXRlKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5SZWFkT25seUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxJbmNs
dWRlc19taXhpblJlYWRPbmx5QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+OjpnZXQ8anNU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluUmVhZE9ubHlBdHRyaWJ1dGVHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJtaXhpblJlYWRPbmx5QXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Z2V0PGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNf
bWl4aW5SZWFkT25seUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm1peGluUmVhZE9ubHlBdHRy
aWJ1dGUiKTsKIH0KIAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJM
RShDb25kaXRpb24yMykKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzTWl4aW5BdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc19taXhpbkF0dHJpYnV0ZUdldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q29uZGl0aW9uYWxJ
bmNsdWRlcyYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtNTUxLDE1ICs1NTEsMTUgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dENvbmRpdGlvbmFsSQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubWl4aW5B
dHRyaWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRp
dGlvbmFsSW5jbHVkZXNNaXhpbkF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc19taXhpbkF0dHJp
YnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Z2V0PGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNN
aXhpbkF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm1peGluQXR0cmlidXRlIik7CisgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Z2V0PGpzVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXNfbWl4aW5BdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJtaXhpbkF0
dHJpYnV0ZSIpOwogfQogCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5B
QkxFKENvbmRpdGlvbjIzKQotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNNaXhpbkF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcyYgdGhpc09iamVjdCwgSlNWYWx1ZSB2
YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzX21p
eGluQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewog
ICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01NzIsNDQgKzU3Miw0
NCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxJCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDb25kaXRpb25h
bEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNfbWl4aW5BdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQog
ewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OnNl
dDxzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGVTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm1peGluQXR0cmlidXRl
Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6
c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNfbWl4aW5BdHRyaWJ1dGVTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm1peGluQXR0cmli
dXRlIik7CiB9CiAKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMjMpCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNs
dWRlc01peGluQ3VzdG9tQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzJiB0aGlzT2JqZWN0KQorc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNfbWl4aW5DdXN0b21BdHRy
aWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXMmIHRoaXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVybiB0aGlzT2JqZWN0Lm1peGluQ3VzdG9tQXR0cmli
dXRlKGxleGljYWxHbG9iYWxPYmplY3QpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRlLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzX21peGluQ3VzdG9tQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+OjpnZXQ8anNU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAibWl4aW5DdXN0b21BdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXM+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc19taXhp
bkN1c3RvbUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm1peGluQ3VzdG9tQXR0cmlidXRlIik7
CiB9CiAKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMjMpCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01p
eGluQ3VzdG9tQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVl
KQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNfbWl4aW5D
dXN0b21BdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7
CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICB0
aGlzT2JqZWN0LnNldE1peGluQ3VzdG9tQXR0cmlidXRlKGxleGljYWxHbG9iYWxPYmplY3QsIHZh
bHVlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkN1c3RvbUF0dHJpYnV0ZSwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc19taXhpbkN1c3RvbUF0dHJpYnV0ZSwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNNaXhpbkN1c3RvbUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAibWl4aW5DdXN0b21BdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+OjpzZXQ8c2V0SlNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlc19taXhpbkN1c3RvbUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibWl4aW5DdXN0b21BdHRyaWJ1dGUi
KTsKIH0KIAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25k
aXRpb24yMykKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVz
TWl4aW5Ob2RlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNfbWl4aW5Ob2RlQXR0cmlidXRlR2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RDb25kaXRpb25h
bEluY2x1ZGVzJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC02MTcsMTUgKzYxNywxNSBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0Q29uZGl0aW9uYWxJCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETEludGVyZmFjZTxOb2RlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xv
YmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwubWl4aW5Ob2RlQXR0cmlidXRlKCkpKSk7CiB9
CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4
aW5Ob2RlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzX21peGluTm9kZUF0dHJpYnV0ZSwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzPjo6Z2V0PGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbk5vZGVB
dHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJtaXhpbk5vZGVBdHRyaWJ1dGUiKTsKKyAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+OjpnZXQ8anNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlc19taXhpbk5vZGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJtaXhp
bk5vZGVBdHRyaWJ1dGUiKTsKIH0KIAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIp
IHx8IEVOQUJMRShDb25kaXRpb24yMykKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzTWl4aW5Ob2RlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzJiB0aGlzT2JqZWN0
LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNfbWl4aW5Ob2RlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzJiB0aGlzT2JqZWN0LCBKU1Zh
bHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC02MzgsMTUgKzYzOCwxNSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9u
YWxJCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5Ob2RlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzX21peGluTm9kZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RD
b25kaXRpb25hbEluY2x1ZGVzPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhp
bk5vZGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgIm1peGluTm9kZUF0dHJpYnV0ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzX21peGluTm9kZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibWl4aW5Ob2RlQXR0cmlidXRlIik7CiB9CiAKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1zdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1BhcnRpYWxNaXhpbkF0
dHJpYnV0ZUZyb21QYXJ0aWFsR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNfcGFydGlhbE1peGluQXR0cmlidXRl
RnJvbVBhcnRpYWxHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXMmIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTY1NCwxNSArNjU0LDE1IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMRG91YmxlPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLnBhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsKCkpKSk7CiB9CiAKLUpTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUGFydGlhbE1peGlu
QXR0cmlidXRlRnJvbVBhcnRpYWwsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNfcGFydGlhbE1peGluQXR0cmli
dXRlRnJvbVBhcnRpYWwsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OmdldDxqc1Rlc3RDb25kaXRpb25h
bEluY2x1ZGVzUGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWxHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJwYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbCIpOworICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OmdldDxqc1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzX3BhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
cGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWwiKTsKIH0KIAogI2VuZGlmCiAKICNpZiAo
RU5BQkxFKENvbmRpdGlvbjEyKSAmJiBFTkFCTEUoQ29uZGl0aW9uMjIpKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMjMpCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb25Cb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Q2xh
c3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25fbWl4aW5PcGVyYXRp
b25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RDb25kaXRpb25h
bEluY2x1ZGVzPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02NzQsMTUgKzY3NCwxNSBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluT3BlcmF0aW9uLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBl
RnVuY3Rpb25fbWl4aW5PcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OmNhbGw8anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRl
c1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgIm1peGluT3BlcmF0aW9uIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Y2FsbDxqc1Rlc3RDb25kaXRpb25hbEluY2x1
ZGVzUHJvdG90eXBlRnVuY3Rpb25fbWl4aW5PcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIm1peGluT3BlcmF0aW9uIik7CiB9CiAKICNlbmRpZgogCiAjaWYg
KEVOQUJMRShDb25kaXRpb24xMikgJiYgRU5BQkxFKENvbmRpdGlvbjIyKSkgfHwgRU5BQkxFKENv
bmRpdGlvbjIzKQotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRp
dGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluQ29tcGxleE9wZXJhdGlvbkJvZHko
SlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXM+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbl9taXhp
bkNvbXBsZXhPcGVyYXRpb25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxK
U1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsK
ICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC03MDMsMTUgKzcwMywx
NSBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEludGVyZmFj
ZTxUZXN0T2JqPj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmpl
Y3QoKSwgdGhyb3dTY29wZSwgaW1wbC5taXhpbkNvbXBsZXhPcGVyYXRpb24oKmNvbnRleHQsIFdU
Rk1vdmUoc3RyQXJnKSwgKm9iakFyZykpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbXBsZXhP
cGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbl9taXhpbkNvbXBsZXhPcGVyYXRpb24sIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewot
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OmNhbGw8
anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db21wbGV4T3Bl
cmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtaXhpbkNvbXBs
ZXhPcGVyYXRpb24iKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXM+OjpjYWxsPGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlv
bl9taXhpbkNvbXBsZXhPcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgIm1peGluQ29tcGxleE9wZXJhdGlvbiIpOwogfQogCiAjZW5kaWYKIAogI2lmIChFTkFC
TEUoQ29uZGl0aW9uMTIpICYmIEVOQUJMRShDb25kaXRpb24yMikpIHx8IEVOQUJMRShDb25kaXRp
b24yMykKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25h
bEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJhdGlvbkJvZHkoSlNDOjpK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+OjpD
bGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbl9taXhpbkN1c3Rv
bU9wZXJhdGlvbkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXM+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1
dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTcyMCwxNSArNzIwLDE1IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT5taXhpbkN1c3Rv
bU9wZXJhdGlvbigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSkpKSk7CiB9CiAKLUpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBl
RnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uX21peGluQ3VzdG9t
T3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXM+OjpjYWxsPGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5j
dGlvbk1peGluQ3VzdG9tT3BlcmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJtaXhpbkN1c3RvbU9wZXJhdGlvbiIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OmNhbGw8anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRl
c1Byb3RvdHlwZUZ1bmN0aW9uX21peGluQ3VzdG9tT3BlcmF0aW9uQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJtaXhpbkN1c3RvbU9wZXJhdGlvbiIpOwogfQogCiAjZW5k
aWYKIAogI2lmIChFTkFCTEUoQ29uZGl0aW9uMTEpICYmIEVOQUJMRShDb25kaXRpb24xMikgJiYg
RU5BQkxFKENvbmRpdGlvbjIyKSkgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVG
dW5jdGlvbk1peGluQ29uZGl0aW9uYWxPcGVyYXRpb25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1l
IElETE9wZXJhdGlvbjxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Q2xhc3NQYXJhbWV0ZXIg
Y2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25fbWl4aW5Db25kaXRpb25hbE9wZXJhdGlv
bkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXM+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTc0MCwxNSArNzQwLDE1IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db25kaXRpb25hbE9wZXJhdGlv
biwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRl
c1Byb3RvdHlwZUZ1bmN0aW9uX21peGluQ29uZGl0aW9uYWxPcGVyYXRpb24sIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OmNhbGw8anNU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db25kaXRpb25hbE9w
ZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWl4aW5Db25k
aXRpb25hbE9wZXJhdGlvbiIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlcz46OmNhbGw8anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1
bmN0aW9uX21peGluQ29uZGl0aW9uYWxPcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgIm1peGluQ29uZGl0aW9uYWxPcGVyYXRpb24iKTsKIH0KIAogI2VuZGlm
CiAKICNpZiAoRU5BQkxFKENvbmRpdGlvbjEyKSAmJiBFTkFCTEUoQ29uZGl0aW9uMjIpKSB8fCBF
TkFCTEUoQ29uZGl0aW9uMjMpCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5TZXR0aW5nc0NvbmRp
dGlvbmFsT3BlcmF0aW9uQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1By
b3RvdHlwZUZ1bmN0aW9uX21peGluU2V0dGluZ3NDb25kaXRpb25hbE9wZXJhdGlvbkJvZHkoSlND
OjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+
OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTc2MCwxNSArNzYwLDE1IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q29uZGl0aW9uYWxJ
bmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9u
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVz
UHJvdG90eXBlRnVuY3Rpb25fbWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+Ojpj
YWxsPGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluU2V0dGlu
Z3NDb25kaXRpb25hbE9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAibWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uIik7CisgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Y2FsbDxqc1Rlc3RDb25kaXRp
b25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25fbWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3Bl
cmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtaXhpblNldHRp
bmdzQ29uZGl0aW9uYWxPcGVyYXRpb24iKTsKIH0KIAogI2VuZGlmCiAKICNpZiAoRU5BQkxFKENv
bmRpdGlvbjEyKSAmJiBFTkFCTEUoQ29uZGl0aW9uMjIpKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMp
Ci1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNs
dWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbkJvZHkoSlNDOjpK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+OjpD
bGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbl9taXhpblJlc3Vs
dEZpZWxkT3BlcmF0aW9uQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAg
ICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNzc5LDE1ICs3NzksMTUg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExTZXF1ZW5jZTxJ
RExJbnRlcmZhY2U8Tm9kZT4+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmds
b2JhbE9iamVjdCgpLCBXVEZNb3ZlKGltcGxSZXN1bHQubm9kZXMpKSkpOwogfQogCi1KU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0
aW9uTWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uX21peGluUmVzdWx0
RmllbGRPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlcz46OmNhbGw8anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlw
ZUZ1bmN0aW9uTWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAibWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbiIpOworICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OmNhbGw8anNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uX21peGluUmVzdWx0RmllbGRPcGVyYXRp
b25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1peGluUmVzdWx0Rmll
bGRPcGVyYXRpb24iKTsKIH0KIAogI2VuZGlmCiAKICNpZiAoRU5BQkxFKENvbmRpdGlvbjEyKSAm
JiBFTkFCTEUoQ29uZGl0aW9uMjIpICYmIEVOQUJMRShDb25kaXRpb24zMykpIHx8IEVOQUJMRShD
b25kaXRpb24yMykKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25QYXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9t
UGFydGlhbEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlND
OjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdENvbmRp
dGlvbmFsSW5jbHVkZXM+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVG
dW5jdGlvbl9wYXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9tUGFydGlhbEJvZHkoSlNDOjpKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
dHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+OjpDbGFzc1Bh
cmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTc5OSw5ICs3OTksOSBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90
b3R5cGVGdW5jdGlvblBhcnRpYWxNaXhpbk9wZXJhdGlvbkZyb21QYXJ0aWFsLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVu
Y3Rpb25fcGFydGlhbE1peGluT3BlcmF0aW9uRnJvbVBhcnRpYWwsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OmNhbGw8anNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uUGFydGlhbE1peGluT3BlcmF0aW9uRnJv
bVBhcnRpYWxCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInBhcnRpYWxN
aXhpbk9wZXJhdGlvbkZyb21QYXJ0aWFsIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Y2FsbDxqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJv
dG90eXBlRnVuY3Rpb25fcGFydGlhbE1peGluT3BlcmF0aW9uRnJvbVBhcnRpYWxCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInBhcnRpYWxNaXhpbk9wZXJhdGlvbkZyb21Q
YXJ0aWFsIik7CiB9CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlLmNwcAkocmV2aXNpb24gMjY4NTQ3KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01NiwzMiArNTYsMzIgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IAogSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
Q29uc3RydWN0b3IpOwogSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0
ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVfY29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSk7CiAjaWYgRU5BQkxFKENPTkRJVElP
TikKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlX2NvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENPTkRJVElPTjIpCi1KU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25h
bEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlX2NvbmRpdGlvbmFsQW5kQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSk7CiAjaWYgRU5BQkxFKENPTkRJVElPTikKLUpTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRp
dGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfY29uZGl0aW9uYWxB
bmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKTsKICNlbmRpZgogI2VuZGlmCi1KU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1l
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVu
Zm9yZ2VhYmxlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3Jn
ZWFibGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVBy
aXZhdGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJs
ZVByaXZhdGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKTsK
LUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSk7Ci1KU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0Nv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVh
ZFdyaXRlQXR0cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVu
Zm9yZ2VhYmxlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9y
Z2VhYmxlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxl
UHJpdmF0ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdl
YWJsZVByaXZhdGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlz
ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9ydW50
aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfcnVudGltZUNvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlX3J1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmli
dXRlVW5mb3JnZWFibGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlX3J1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRl
VW5mb3JnZWFibGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlX3J1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3Jn
ZWFibGVQcml2YXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZV9ydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVu
Zm9yZ2VhYmxlUHJpdmF0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVfcnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQ
cm9taXNlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZV9ydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2Up
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
X3NldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfc2V0dGluZ3NDb25k
aXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVBdHRyaWJ1dGVVbmZvcmdlYWJsZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfc2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlVW5mb3JnZWFibGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlX3NldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfc2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVBdHRyaWJ1dGVQcm9taXNlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVQcm9taXNlKTsKIAogY2xhc3MgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVByb3Rv
dHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAt
MTMzLDggKzEzMyw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1QK
IAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVUYWJsZVZhbHVlc1tdID0KIHsKLSAgICB7ICJydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21B
Y2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlVW5mb3JnZWFibGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGlt
ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZSkgfSB9LAotICAgIHsg
InNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0
dHJpYnV0ZVVuZm9yZ2VhYmxlKSB9IH0sCisgICAgeyAicnVudGltZUNvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3Vz
dG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfcnVudGltZUNvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVf
cnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZSkgfSB9LAor
ICAgIHsgInNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxl
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxl
dGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZV9zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJs
ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfc2V0dGluZ3NDb25kaXRpb25hbGx5UmVh
ZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUpIH0gfSwKIH07CiAKIHN0YXRpYyBjb25zdCBIYXNo
VGFibGUgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVRhYmxlID0geyAyLCA3LCB0cnVlLCBK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlOjppbmZvKCksIEpTVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVUYWJsZVZhbHVlcywgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVRhYmxlSW5k
ZXggfTsKQEAgLTE1OSwyMyArMTU5LDIzIEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBK
U1Rlc3RDb25kaXQKIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZUNvbnN0cnVjdG9yKSB9IH0sCiAjaWYgRU5BQkxFKENPTkRJVElPTikKLSAgICB7ICJjb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVD
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKSB9IH0sCisgICAgeyAiY29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0
dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9jb25kaXRpb25h
bGx5UmVhZFdyaXRlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9jb25k
aXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKSB9IH0sCiAjZWxzZQotICAgIHsgImNvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21B
Y2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1
dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PigwKSB9IH0sCisgICAgeyAiY29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIsIEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlX2Nv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAjZW5kaWYKICNpZiBFTkFCTEUo
Q09ORElUSU9OMikKICNpZiBFTkFCTEUoQ09ORElUSU9OKQotICAgIHsgImNvbmRpdGlvbmFsQW5k
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZUNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJjb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUp
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfY29uZGl0aW9uYWxBbmRDb25k
aXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZV9jb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUpIH0gfSwKICNl
bHNlCi0gICAgeyAiY29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRl
IiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0s
CisgICAgeyAiY29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIiwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVfY29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAog
I2VuZGlmCiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5k
aWYKLSAgICB7ICJydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRl
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdy
aXRlQXR0cmlidXRlKSB9IH0sCi0gICAgeyAicnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGVQcm9taXNlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmli
dXRlUHJvbWlzZSkgfSB9LAotICAgIHsgInNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0
dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpD
dXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0Nv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUpIH0gfSwKLSAgICB7ICJzZXR0aW5nc0NvbmRp
dGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmli
dXRlUHJvbWlzZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKSB9IH0sCisgICAgeyAicnVudGltZUNvbmRp
dGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfcnVu
dGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlX3J1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKSB9IH0sCisg
ICAgeyAicnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29y
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlX3J1bnRpbWVDb25kaXRpb25h
bGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVfcnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKSB9IH0sCisg
ICAgeyAic2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlX3NldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfc2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdy
aXRlQXR0cmlidXRlKSB9IH0sCisgICAgeyAic2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlUHJvbWlzZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpDdXN0b21BY2Nlc3NvciksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZV9zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGVQcm9taXNlKSB9IH0sCiB9OwogCiBjb25zdCBDbGFzc0luZm8gSlNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZVByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGUiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVQcm90b3R5cGUpIH07CkBAIC0yMTUs
MTYgKzIxNSwxNiBAQCB2b2lkIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVQcm90b3R5CiAg
ICAgfQogICAgIC8vIEFkZGluZyBiYWNrIGF0dHJpYnV0ZSwgYnV0IGFzIHJlYWRvbmx5LCBhZnRl
ciByZW1vdmluZyB0aGUgcmVhZC13cml0ZSB2YXJpYW50IGFib3ZlLiAKICAgICBpZiAoIVJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCkp
Ci0gICAgICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xp
ZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKS5ydW50aW1lQ29uZGl0aW9u
YWxseVJlYWRXcml0ZUF0dHJpYnV0ZVB1YmxpY05hbWUoKSwgSlNDOjpET01BdHRyaWJ1dGVHZXR0
ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVD
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlLCBudWxscHRyLCBKU0M6OkRPTUF0dHJpYnV0
ZUFubm90YXRpb24geyBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlOjppbmZvKCksIG51bGxw
dHIgfSksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RE9NQXR0cmlidXRlKSkpOworICAgICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwg
c3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVz
KCkucnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQdWJsaWNOYW1lKCksIEpT
Qzo6RE9NQXR0cmlidXRlR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGpzVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVfcnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUsIG51bGxw
dHIsIEpTQzo6RE9NQXR0cmlidXRlQW5ub3RhdGlvbiB7IEpTVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGU6OmluZm8oKSwgbnVsbHB0ciB9KSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpKSk7CiAgICAgLy8gQWRkaW5nIGJh
Y2sgYXR0cmlidXRlLCBidXQgYXMgcmVhZG9ubHksIGFmdGVyIHJlbW92aW5nIHRoZSByZWFkLXdy
aXRlIHZhcmlhbnQgYWJvdmUuIAogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSkKLSAgICAgICAgcHV0RGlyZWN0Q3Vz
dG9tQWNjZXNzb3Iodm0sIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0
YSktPmJ1aWx0aW5OYW1lcygpLnJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRl
UHJvbWlzZVB1YmxpY05hbWUoKSwgQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGpzVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZVByb21pc2UsIG51bGxwdHIpLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvcikpKTsKKyAg
ICAgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHN0YXRpY19jYXN0PEpTVk1DbGllbnRE
YXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLnJ1bnRpbWVDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZVB1YmxpY05hbWUoKSwgQ3VzdG9tR2V0dGVyU2V0dGVy
OjpjcmVhdGUodm0sIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfcnVudGltZUNvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlLCBudWxscHRyKSwgYXR0cmlidXRlc0ZvclN0
cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3Vz
dG9tQWNjZXNzb3IpKSk7CiAgICAgLy8gQWRkaW5nIGJhY2sgYXR0cmlidXRlLCBidXQgYXMgcmVh
ZG9ubHksIGFmdGVyIHJlbW92aW5nIHRoZSByZWFkLXdyaXRlIHZhcmlhbnQgYWJvdmUuIAogICAg
IGlmICghZG93bmNhc3Q8RG9jdW1lbnQ+KGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2Jh
bE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKS0+c2V0dGluZ3MoKS50ZXN0RmVh
dHVyZUVuYWJsZWQoKSkKLSAgICAgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHN0YXRp
Y19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLnNl
dHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVB1YmxpY05hbWUoKSwgSlNDOjpE
T01BdHRyaWJ1dGVHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSwgbnVsbHB0ciwg
SlNDOjpET01BdHRyaWJ1dGVBbm5vdGF0aW9uIHsgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZTo6aW5mbygpLCBudWxscHRyIH0pLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSkpKTsKKyAgICAgICAgcHV0RGlyZWN0Q3Vz
dG9tQWNjZXNzb3Iodm0sIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0
YSktPmJ1aWx0aW5OYW1lcygpLnNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0
ZVB1YmxpY05hbWUoKSwgSlNDOjpET01BdHRyaWJ1dGVHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwg
anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVBdHRyaWJ1dGUsIG51bGxwdHIsIEpTQzo6RE9NQXR0cmlidXRlQW5ub3RhdGlvbiB7IEpTVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGU6OmluZm8oKSwgbnVsbHB0ciB9KSwgYXR0cmlidXRlc0Zv
clN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpKSk7
CiAgICAgLy8gQWRkaW5nIGJhY2sgYXR0cmlidXRlLCBidXQgYXMgcmVhZG9ubHksIGFmdGVyIHJl
bW92aW5nIHRoZSByZWFkLXdyaXRlIHZhcmlhbnQgYWJvdmUuIAogICAgIGlmICghZG93bmNhc3Q8
RG9jdW1lbnQ+KGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKS0+c2V0dGluZ3MoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSkK
LSAgICAgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHN0YXRpY19jYXN0PEpTVk1DbGll
bnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLnNldHRpbmdzQ29uZGl0aW9u
YWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2VQdWJsaWNOYW1lKCksIEN1c3RvbUdldHRlclNl
dHRlcjo6Y3JlYXRlKHZtLCBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25k
aXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSwgbnVsbHB0ciksIGF0dHJpYnV0ZXNG
b3JTdHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkN1c3RvbUFjY2Vzc29yKSkpOworICAgICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwg
c3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVz
KCkuc2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZVB1YmxpY05h
bWUoKSwgQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGpzVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVfc2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSwg
bnVsbHB0ciksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKSkpOwogICAgIGlmIChoYXNEaXNh
YmxlZFJ1bnRpbWVQcm9wZXJ0aWVzICYmIHN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkKICAg
ICAgICAgZmxhdHRlbkRpY3Rpb25hcnlPYmplY3Qodm0pOwogICAgIEpTQ19UT19TVFJJTkdfVEFH
X1dJVEhPVVRfVFJBTlNJVElPTigpOwpAQCAtMjQ0LDggKzI0NCw4IEBAIHZvaWQgSlNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZTo6ZmluaXMKIAogICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNf
YmFzZV9vZjxBY3RpdmVET01PYmplY3QsIFRlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6dmFs
dWUsICJJbnRlcmZhY2UgaXMgbm90IG1hcmtlZCBhcyBbQWN0aXZlRE9NT2JqZWN0XSBldmVuIHRo
b3VnaCBpbXBsZW1lbnRhdGlvbiBjbGFzcyBzdWJjbGFzc2VzIEFjdGl2ZURPTU9iamVjdC4iKTsK
IAotICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50
RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKS5ydW50aW1lQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZVByaXZhdGVOYW1lKCksIEN1c3Rv
bUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVu
dGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUsIG51
bGxwdHIpLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSkpOwotICAgIHB1dERp
cmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNs
aWVudERhdGEpLT5idWlsdGluTmFtZXMoKS5zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGVQcml2YXRlTmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0
ZXI6OmNyZWF0ZSh2bSwganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSwgbnVsbHB0ciksIGF0
dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CisgICAgcHV0RGlyZWN0Q3VzdG9t
QWNjZXNzb3Iodm0sIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSkt
PmJ1aWx0aW5OYW1lcygpLnJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5m
b3JnZWFibGVQcml2YXRlUHJpdmF0ZU5hbWUoKSwgQ3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUo
dm0sIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfcnVudGltZUNvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUsIG51bGxwdHIpLCBhdHRyaWJ1dGVzRm9y
U3RydWN0dXJlKEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpSZWFkT25seSkpOworICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZt
LCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFt
ZXMoKS5zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVBy
aXZhdGVQcml2YXRlTmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUsIG51bGxwdHIpLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJl
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSkpOwogfQogCiBKU09iamVjdCogSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZTo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9i
amVjdCkKQEAgLTI5Nyw3ICsyOTcsNyBAQCBKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0Q29uZGl0CiAgICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQog
Ci1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRp
dGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUmIHRoaXNPYmplY3QpCitz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9jb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlJiB0aGlzT2JqZWN0KQogewog
ICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMDUsMTMgKzMwNSwx
MyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxsCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxOb2RlPj4obGV4aWNh
bEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGlt
cGwuY29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1KU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfY29uZGl0aW9uYWxseVJlYWRX
cml0ZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6Z2V0PGpzVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiY29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIpOworICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OmdldDxqc1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlX2NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVHZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJjb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIik7CiB9CiAKICNpZiBFTkFC
TEUoQ09ORElUSU9OKQotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlJiB0
aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVfY29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVNldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZSYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9
IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzI0LDE1ICszMjQsMTUgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbAogICAgIHJldHVybiB0cnVlOwogfQogCi1K
U0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVfY29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfY29uZGl0aW9u
YWxseVJlYWRXcml0ZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAiY29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIpOwog
fQogCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDT05ESVRJT04yKQotc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUmIHRoaXNPYmplY3QpCitzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9jb25kaXRpb25hbEFu
ZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUmIHRoaXNPYmpl
Y3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM0MCwx
NiArMzQwLDE2IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGwKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dT
Y29wZSwgaW1wbC5jb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUo
KSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVfY29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZUNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZUdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgImNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0
ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZT46OmdldDxqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlX2NvbmRpdGlvbmFsQW5kQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNvbmRpdGlvbmFsQW5k
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIpOwogfQogCiAjZW5kaWYKIAogI2lmIEVO
QUJMRShDT05ESVRJT04yKQogI2lmIEVOQUJMRShDT05ESVRJT04pCi1zdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsQW5kQ29uZGl0aW9u
YWxseVJlYWRXcml0ZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSYgdGhpc09iamVjdCwgSlNWYWx1
ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlX2NvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVNldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZSYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzYyLDE2ICszNjIsMTYgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbAogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRp
dGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9jb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OnNldDxz
ZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJjb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGU+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9jb25kaXRpb25hbEFu
ZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZSIpOwogfQogCiAjZW5kaWYKIAogI2VuZGlmCiAKLXN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUmIHRoaXNPYmplY3QpCitzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9ydW50aW1lQ29u
ZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSYgdGhpc09iamVjdCkK
IHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzc5LDEyICsz
NzksMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbAogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KGxl
eGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3Bl
LCBpbXBsLnJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKCkpKSk7CiB9CiAK
LUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVu
dGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVf
cnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZT46OmdldDxqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJydW50aW1lQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZT46OmdldDxqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlX3J1
bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicnVu
dGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUiKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSYgdGhpc09iamVjdCwgSlNWYWx1ZSB2
YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
X3J1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlJiB0
aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0zOTcsMTIgKzM5NywxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0Q29uZGl0aW9uYWxsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVfcnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJ1bnRpbWVDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVfcnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJ1bnRpbWVDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGVVbmZvcmdlYWJsZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSYgdGhpc09iamVjdCkKK3N0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlX3J1bnRpbWVDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUmIHRoaXNP
YmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQx
MCwxMiArNDEwLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGwK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5v
ZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhy
b3dTY29wZSwgaW1wbC5ydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9y
Z2VhYmxlKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZv
cmdlYWJsZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9ydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmli
dXRlVW5mb3JnZWFibGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJydW50aW1lQ29uZGl0aW9uYWxseVJlYWRX
cml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6Z2V0PGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVfcnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZUdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgInJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3Jn
ZWFibGUiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxl
U2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfcnVudGltZUNvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSYgdGhpc09iamVj
dCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtNDI4LDEyICs0MjgsMTIgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENv
bmRpdGlvbmFsbAogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVh
ZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVfcnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJs
ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0
ZVVuZm9yZ2VhYmxlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2Vh
YmxlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfcnVudGltZUNvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicnVudGltZUNvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlJiB0aGlzT2JqZWN0KQor
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfcnVudGlt
ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGVHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGUmIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTQ0MSwxMiArNDQxLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RDb25kaXRpb25hbGwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9i
YWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5ydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSgpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
X3J1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRl
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRl
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicnVudGltZUNvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUiKTsKKyAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZV9ydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0
ZVVuZm9yZ2VhYmxlUHJpdmF0ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2
YXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVBy
aXZhdGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGUmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9ydW50aW1lQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZVNldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZSYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtNDU5LDEyICs0NTksMTIgQEAgc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdENvbmRpdGlvbmFsbAogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25k
aXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlX3J1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGU+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25k
aXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJydW50aW1lQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSIpOworICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OnNldDxzZXRKU1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlX3J1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlVW5mb3JnZWFibGVQcml2YXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlUHJvbWlzZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlX3J1bnRpbWVDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSYgdGhpc09iamVjdCkKIHsK
ICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDcyLDEyICs0NzIs
MTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbAogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExQcm9taXNlPElETERvdWJsZT4+KGxl
eGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3Bl
LCBpbXBsLnJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSgpKSkp
OwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZV9ydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21p
c2UsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OmdldDxqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6UmVqZWN0UHJvbWlzZT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgInJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJv
bWlzZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZT46OmdldDxqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlX3J1bnRpbWVDb25kaXRpb25h
bGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OlJlamVjdFByb21pc2U+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJydW50
aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UiKTsKIH0KIAotc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2VTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUmIHRoaXNPYmpl
Y3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZV9ydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21p
c2VTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGUmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0
byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ5MCwxMiArNDkwLDEyIEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGwKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfcnVudGltZUNvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGVQcm9taXNlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGU+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25h
bGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGVQcm9taXNlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfcnVu
dGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJydW50aW1lQ29uZGl0aW9u
YWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9zZXR0aW5nc0NvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUmIHRoaXNPYmplY3QpCiB7CiAgICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTUwMywxMiArNTAzLDEyIEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGwKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5z
ZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0Nv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfc2V0dGlu
Z3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
IHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+
OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNldHRpbmdzQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZT46OmdldDxqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlX3NldHRp
bmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNldHRp
bmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSYgdGhpc09iamVjdCwgSlNWYWx1ZSB2
YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
X3NldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSYg
dGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0o
JmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtNTIxLDEyICs1MjEsMTIgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdENvbmRpdGlvbmFsbAogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZV9zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzZXR0aW5nc0Nv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZV9zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInNldHRpbmdz
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlJiB0aGlzT2JqZWN0KQor
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfc2V0dGlu
Z3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGUmIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTUzNCwxMiArNTM0LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25k
aXRpb25hbGwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50
ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSwgdGhyb3dTY29wZSwgaW1wbC5zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVVbmZvcmdlYWJsZSgpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0
dHJpYnV0ZVVuZm9yZ2VhYmxlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlX3NldHRpbmdzQ29uZGl0aW9u
YWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
IHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+
OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2V0dGluZ3NDb25k
aXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUiKTsKKyAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZV9zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVV
bmZvcmdlYWJsZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlVW5mb3JnZWFibGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFs
dWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9z
ZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVNldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZSYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTUyLDEyICs1NTIsMTIgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbAogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRp
bmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlX3NldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGU+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9u
YWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlX3NldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxl
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJz
ZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZSIpOwogfQog
Ci1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRp
bmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZUdldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZSYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlX3NldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0
ZVVuZm9yZ2VhYmxlUHJpdmF0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSYgdGhpc09iamVjdCkKIHsKICAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTY1LDEyICs1NjUsMTIgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbAogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KGxleGljYWxHbG9i
YWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnNl
dHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSgp
KSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxl
UHJpdmF0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZV9zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewot
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46Omdl
dDxqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdy
aXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAic2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5m
b3JnZWFibGVQcml2YXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlPjo6Z2V0PGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfc2V0dGlu
Z3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2V0dGluZ3NDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlIik7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25h
bGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlJiB0
aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVfc2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmli
dXRlVW5mb3JnZWFibGVQcml2YXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlJiB0aGlzT2JqZWN0LCBKU1ZhbHVl
IHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01
ODMsMTIgKzU4MywxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxs
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlVW5mb3JnZWFibGVQcml2YXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlX3NldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxl
UHJpdmF0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6c2V0PHNldEpT
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0
dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlX3NldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxl
UHJpdmF0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAic2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQ
cml2YXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZUdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZSYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlX3NldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZVByb21pc2VHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUmIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0g
PSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTU5NiwxMiArNTk2LDEyIEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMUHJvbWlzZTxJRExEb3VibGU+PihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5zZXR0aW5n
c0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKCkpKSk7CiB9CiAKLUpTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3ND
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZV9zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdz
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2VHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpSZWplY3RQcm9taXNlPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAic2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSIpOwor
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46Omdl
dDxqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlX3NldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRX
cml0ZUF0dHJpYnV0ZVByb21pc2VHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpSZWpl
Y3RQcm9taXNlPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2V0dGluZ3NDb25k
aXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSIpOwogfQogCi1zdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2VTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUmIHRoaXNPYmplY3QsIEpT
VmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZV9zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlU2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZt
ID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02MTQsOSArNjE0LDkgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbAogICAgIHJldHVybiB0cnVlOwogfQogCi1K
U0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNl
dHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfc2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlUHJvbWlzZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7
Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6
c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVQcm9taXNlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVfc2V0dGlu
Z3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZVNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic2V0dGluZ3NDb25kaXRpb25h
bGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSIpOwogfQogCiBKU0M6Oklzb1N1YnNwYWNlKiBK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlOjpzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0p
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9N
SklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RE9NSklULmNwcAkocmV2aXNpb24gMjY4NTQ3KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTU5LDY5ICs1OSw2OSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlv
bnMKIAotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5j
dGlvbkdldEF0dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKGpzVGVzdERPTUpJ
VFByb3RvdHlwZUZ1bmN0aW9uR2V0QXR0cmlidXRlV2l0aG91dFR5cGVDaGVjaywgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU1Rlc3RET01KSVQqLCBET01KSVQ6
OklETEpTQXJndW1lbnRUeXBlPElETERPTVN0cmluZz4pKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25JdGVtKTsKLUpTQ19ERUNMQVJFX0pJ
VF9PUEVSQVRJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25JdGVtV2l0aG91dFR5cGVD
aGVjaywgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU1Rlc3RE
T01KSVQqLCBET01KSVQ6OklETEpTQXJndW1lbnRUeXBlPElETFVuc2lnbmVkU2hvcnQ+LCBET01K
SVQ6OklETEpTQXJndW1lbnRUeXBlPElETFVuc2lnbmVkU2hvcnQ+KSk7Ci1KU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSGFzQXR0cmlidXRlKTsK
LUpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25I
YXNBdHRyaWJ1dGVXaXRob3V0VHlwZUNoZWNrLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCAoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTVGVzdERPTUpJVCopKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZCk7Ci1KU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVu
dEJ5SWRXaXRob3V0VHlwZUNoZWNrLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCAoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTVGVzdERPTUpJVCosIERPTUpJVDo6SURMSlNBcmd1bWVudFR5cGU8SURMUmVx
dWlyZXNFeGlzdGluZ0F0b21TdHJpbmdBZGFwdG9yPElETERPTVN0cmluZz4+KSk7Ci1KU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVu
dHNCeU5hbWUpOwotSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihqc1Rlc3RET01KSVRQcm90b3R5
cGVGdW5jdGlvbkdldEVsZW1lbnRzQnlOYW1lV2l0aG91dFR5cGVDaGVjaywgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU1Rlc3RET01KSVQqLCBET01KSVQ6OklE
TEpTQXJndW1lbnRUeXBlPElETEF0b21TdHJpbmdBZGFwdG9yPElETERPTVN0cmluZz4+KSk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uX2dl
dEF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKGpzVGVzdERPTUpJVFByb3Rv
dHlwZUZ1bmN0aW9uX2dldEF0dHJpYnV0ZVdpdGhvdXRUeXBlQ2hlY2ssIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNUZXN0RE9NSklUKiwgRE9NSklUOjpJRExK
U0FyZ3VtZW50VHlwZTxJRExET01TdHJpbmc+KSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uX2l0ZW0pOworSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbl9pdGVtV2l0aG91dFR5cGVDaGVj
aywgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU1Rlc3RET01K
SVQqLCBET01KSVQ6OklETEpTQXJndW1lbnRUeXBlPElETFVuc2lnbmVkU2hvcnQ+LCBET01KSVQ6
OklETEpTQXJndW1lbnRUeXBlPElETFVuc2lnbmVkU2hvcnQ+KSk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uX2hhc0F0dHJpYnV0ZSk7CitK
U0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uX2hh
c0F0dHJpYnV0ZVdpdGhvdXRUeXBlQ2hlY2ssIEpTQzo6RW5jb2RlZEpTVmFsdWUsIChKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNUZXN0RE9NSklUKikpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbl9nZXRFbGVtZW50QnlJZCk7CitKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uX2dldEVsZW1l
bnRCeUlkV2l0aG91dFR5cGVDaGVjaywgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU1Rlc3RET01KSVQqLCBET01KSVQ6OklETEpTQXJndW1lbnRUeXBlPElETFJl
cXVpcmVzRXhpc3RpbmdBdG9tU3RyaW5nQWRhcHRvcjxJRExET01TdHJpbmc+PikpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbl9nZXRFbGVt
ZW50c0J5TmFtZSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKGpzVGVzdERPTUpJVFByb3Rv
dHlwZUZ1bmN0aW9uX2dldEVsZW1lbnRzQnlOYW1lV2l0aG91dFR5cGVDaGVjaywgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU1Rlc3RET01KSVQqLCBET01KSVQ6
OklETEpTQXJndW1lbnRUeXBlPElETEF0b21TdHJpbmdBZGFwdG9yPElETERPTVN0cmluZz4+KSk7
CiAKIC8vIEF0dHJpYnV0ZXMKIAogSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01K
SVRDb25zdHJ1Y3Rvcik7CiBKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERPTUpJ
VENvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUQW55
QXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVEJvb2xlYW5BdHRy
KTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUQnl0ZUF0dHIpOwotSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRPY3RldEF0dHIpOwotSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRTaG9ydEF0dHIpOwotSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RET01KSVRVbnNpZ25lZFNob3J0QXR0cik7Ci1KU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVExvbmdBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0RE9NSklUVW5zaWduZWRMb25nQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKGpzVGVzdERPTUpJVExvbmdMb25nQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0RE9NSklURmxvYXRBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0RE9NSklUVW5yZXN0cmljdGVkRmxvYXRBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0RE9NSklURG91YmxlQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZERvdWJsZUF0dHIpOwotSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RET01KSVREb21TdHJpbmdBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0RE9NSklUQnl0ZVN0cmluZ0F0dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RET01KSVRVc3ZTdHJpbmdBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0RE9NSklUTm9kZUF0dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RET01KSVRCb29sZWFuTnVsbGFibGVBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0RE9NSklUQnl0ZU51bGxhYmxlQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdERPTUpJVE9jdGV0TnVsbGFibGVBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0RE9NSklUU2hvcnROdWxsYWJsZUF0dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RET01KSVRVbnNpZ25lZFNob3J0TnVsbGFibGVBdHRyKTsKLUpTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUTG9uZ051bGxhYmxlQXR0cik7Ci1KU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ051bGxhYmxlQXR0cik7
Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVExvbmdMb25nTnVsbGFibGVB
dHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUVW5zaWduZWRMb25n
TG9uZ051bGxhYmxlQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJ
VEZsb2F0TnVsbGFibGVBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9N
SklUVW5yZXN0cmljdGVkRmxvYXROdWxsYWJsZUF0dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RET01KSVREb3VibGVOdWxsYWJsZUF0dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWREb3VibGVOdWxsYWJsZUF0dHIpOwotSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVREb21TdHJpbmdOdWxsYWJsZUF0dHIp
OwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRCeXRlU3RyaW5nTnVsbGFi
bGVBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUVXN2U3RyaW5n
TnVsbGFibGVBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUTm9k
ZU51bGxhYmxlQXR0cik7Ci0KLXN0YXRpYyBjb25zdCBKU0M6OkRPTUpJVDo6U2lnbmF0dXJlIERP
TUpJVFNpZ25hdHVyZUZvclRlc3RET01KSVRHZXRBdHRyaWJ1dGUoanNUZXN0RE9NSklUUHJvdG90
eXBlRnVuY3Rpb25HZXRBdHRyaWJ1dGVXaXRob3V0VHlwZUNoZWNrLCBKU1Rlc3RET01KSVQ6Omlu
Zm8oKSwgSlNDOjpET01KSVQ6OkVmZmVjdDo6Zm9yUmVhZChET01KSVQ6OkFic3RyYWN0SGVhcFJl
cG9zaXRvcnk6OkRPTSksIERPTUpJVDo6SURMUmVzdWx0VHlwZUZpbHRlcjxJRExOdWxsYWJsZTxJ
RExET01TdHJpbmc+Pjo6dmFsdWUsIERPTUpJVDo6SURMQXJndW1lbnRUeXBlRmlsdGVyPElETERP
TVN0cmluZz46OnZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklU
X2FueUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRfYm9vbGVh
bkF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRfYnl0ZUF0dHIp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRfb2N0ZXRBdHRyKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUX3Nob3J0QXR0cik7CitKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVF91bnNpZ25lZFNob3J0QXR0cik7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVF9sb25nQXR0cik7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVF91bnNpZ25lZExvbmdBdHRyKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUX2xvbmdMb25nQXR0cik7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVF91bnNpZ25lZExvbmdMb25nQXR0cik7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVF9mbG9hdEF0dHIpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRfdW5yZXN0cmljdGVkRmxvYXRBdHRyKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUX2RvdWJsZUF0dHIpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRfdW5yZXN0cmljdGVkRG91YmxlQXR0cik7
CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVF9kb21TdHJpbmdBdHRyKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUX2J5dGVTdHJpbmdBdHRyKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUX3VzdlN0cmluZ0F0dHIpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRfbm9kZUF0dHIpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRfYm9vbGVhbk51bGxhYmxlQXR0cik7CitK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVF9ieXRlTnVsbGFibGVBdHRyKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUX29jdGV0TnVsbGFibGVBdHRy
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUX3Nob3J0TnVsbGFibGVB
dHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUX3Vuc2lnbmVkU2hv
cnROdWxsYWJsZUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRf
bG9uZ051bGxhYmxlQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJ
VF91bnNpZ25lZExvbmdOdWxsYWJsZUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RET01KSVRfbG9uZ0xvbmdOdWxsYWJsZUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RET01KSVRfdW5zaWduZWRMb25nTG9uZ051bGxhYmxlQXR0cik7CitKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVF9mbG9hdE51bGxhYmxlQXR0cik7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVF91bnJlc3RyaWN0ZWRGbG9hdE51bGxh
YmxlQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVF9kb3VibGVO
dWxsYWJsZUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRfdW5y
ZXN0cmljdGVkRG91YmxlTnVsbGFibGVBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0RE9NSklUX2RvbVN0cmluZ051bGxhYmxlQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKGpzVGVzdERPTUpJVF9ieXRlU3RyaW5nTnVsbGFibGVBdHRyKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUX3VzdlN0cmluZ051bGxhYmxlQXR0cik7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVF9ub2RlTnVsbGFibGVBdHRyKTsKKwor
c3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpTaWduYXR1cmUgRE9NSklUU2lnbmF0dXJlRm9yVGVz
dERPTUpJVEdldEF0dHJpYnV0ZShqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbl9nZXRBdHRy
aWJ1dGVXaXRob3V0VHlwZUNoZWNrLCBKU1Rlc3RET01KSVQ6OmluZm8oKSwgSlNDOjpET01KSVQ6
OkVmZmVjdDo6Zm9yUmVhZChET01KSVQ6OkFic3RyYWN0SGVhcFJlcG9zaXRvcnk6OkRPTSksIERP
TUpJVDo6SURMUmVzdWx0VHlwZUZpbHRlcjxJRExOdWxsYWJsZTxJRExET01TdHJpbmc+Pjo6dmFs
dWUsIERPTUpJVDo6SURMQXJndW1lbnRUeXBlRmlsdGVyPElETERPTVN0cmluZz46OnZhbHVlKTsK
IAotc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpTaWduYXR1cmUgRE9NSklUU2lnbmF0dXJlRm9y
VGVzdERPTUpJVEl0ZW0oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25JdGVtV2l0aG91dFR5
cGVDaGVjaywgSlNUZXN0RE9NSklUOjppbmZvKCksIEpTQzo6RE9NSklUOjpFZmZlY3Q6OmZvclJl
YWQoRE9NSklUOjpBYnN0cmFjdEhlYXBSZXBvc2l0b3J5OjpET00pLCBET01KSVQ6OklETFJlc3Vs
dFR5cGVGaWx0ZXI8SURMRE9NU3RyaW5nPjo6dmFsdWUsIERPTUpJVDo6SURMQXJndW1lbnRUeXBl
RmlsdGVyPElETFVuc2lnbmVkU2hvcnQ+Ojp2YWx1ZSwgRE9NSklUOjpJRExBcmd1bWVudFR5cGVG
aWx0ZXI8SURMVW5zaWduZWRTaG9ydD46OnZhbHVlKTsKK3N0YXRpYyBjb25zdCBKU0M6OkRPTUpJ
VDo6U2lnbmF0dXJlIERPTUpJVFNpZ25hdHVyZUZvclRlc3RET01KSVRJdGVtKGpzVGVzdERPTUpJ
VFByb3RvdHlwZUZ1bmN0aW9uX2l0ZW1XaXRob3V0VHlwZUNoZWNrLCBKU1Rlc3RET01KSVQ6Omlu
Zm8oKSwgSlNDOjpET01KSVQ6OkVmZmVjdDo6Zm9yUmVhZChET01KSVQ6OkFic3RyYWN0SGVhcFJl
cG9zaXRvcnk6OkRPTSksIERPTUpJVDo6SURMUmVzdWx0VHlwZUZpbHRlcjxJRExET01TdHJpbmc+
Ojp2YWx1ZSwgRE9NSklUOjpJRExBcmd1bWVudFR5cGVGaWx0ZXI8SURMVW5zaWduZWRTaG9ydD46
OnZhbHVlLCBET01KSVQ6OklETEFyZ3VtZW50VHlwZUZpbHRlcjxJRExVbnNpZ25lZFNob3J0Pjo6
dmFsdWUpOwogCi1zdGF0aWMgY29uc3QgSlNDOjpET01KSVQ6OlNpZ25hdHVyZSBET01KSVRTaWdu
YXR1cmVGb3JUZXN0RE9NSklUSGFzQXR0cmlidXRlKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0
aW9uSGFzQXR0cmlidXRlV2l0aG91dFR5cGVDaGVjaywgSlNUZXN0RE9NSklUOjppbmZvKCksIEpT
Qzo6RE9NSklUOjpFZmZlY3Q6OmZvclJlYWQoRE9NSklUOjpBYnN0cmFjdEhlYXBSZXBvc2l0b3J5
OjpET00pLCBET01KSVQ6OklETFJlc3VsdFR5cGVGaWx0ZXI8SURMQm9vbGVhbj46OnZhbHVlKTsK
K3N0YXRpYyBjb25zdCBKU0M6OkRPTUpJVDo6U2lnbmF0dXJlIERPTUpJVFNpZ25hdHVyZUZvclRl
c3RET01KSVRIYXNBdHRyaWJ1dGUoanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25faGFzQXR0
cmlidXRlV2l0aG91dFR5cGVDaGVjaywgSlNUZXN0RE9NSklUOjppbmZvKCksIEpTQzo6RE9NSklU
OjpFZmZlY3Q6OmZvclJlYWQoRE9NSklUOjpBYnN0cmFjdEhlYXBSZXBvc2l0b3J5OjpET00pLCBE
T01KSVQ6OklETFJlc3VsdFR5cGVGaWx0ZXI8SURMQm9vbGVhbj46OnZhbHVlKTsKIAotc3RhdGlj
IGNvbnN0IEpTQzo6RE9NSklUOjpTaWduYXR1cmUgRE9NSklUU2lnbmF0dXJlRm9yVGVzdERPTUpJ
VEdldEVsZW1lbnRCeUlkKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5
SWRXaXRob3V0VHlwZUNoZWNrLCBKU1Rlc3RET01KSVQ6OmluZm8oKSwgSlNDOjpET01KSVQ6OkVm
ZmVjdDo6Zm9yUmVhZChET01KSVQ6OkFic3RyYWN0SGVhcFJlcG9zaXRvcnk6OkRPTSksIERPTUpJ
VDo6SURMUmVzdWx0VHlwZUZpbHRlcjxJRExJbnRlcmZhY2U8RWxlbWVudD4+Ojp2YWx1ZSwgRE9N
SklUOjpJRExBcmd1bWVudFR5cGVGaWx0ZXI8SURMUmVxdWlyZXNFeGlzdGluZ0F0b21TdHJpbmdB
ZGFwdG9yPElETERPTVN0cmluZz4+Ojp2YWx1ZSk7CitzdGF0aWMgY29uc3QgSlNDOjpET01KSVQ6
OlNpZ25hdHVyZSBET01KSVRTaWduYXR1cmVGb3JUZXN0RE9NSklUR2V0RWxlbWVudEJ5SWQoanNU
ZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25fZ2V0RWxlbWVudEJ5SWRXaXRob3V0VHlwZUNoZWNr
LCBKU1Rlc3RET01KSVQ6OmluZm8oKSwgSlNDOjpET01KSVQ6OkVmZmVjdDo6Zm9yUmVhZChET01K
SVQ6OkFic3RyYWN0SGVhcFJlcG9zaXRvcnk6OkRPTSksIERPTUpJVDo6SURMUmVzdWx0VHlwZUZp
bHRlcjxJRExJbnRlcmZhY2U8RWxlbWVudD4+Ojp2YWx1ZSwgRE9NSklUOjpJRExBcmd1bWVudFR5
cGVGaWx0ZXI8SURMUmVxdWlyZXNFeGlzdGluZ0F0b21TdHJpbmdBZGFwdG9yPElETERPTVN0cmlu
Zz4+Ojp2YWx1ZSk7CiAKLXN0YXRpYyBjb25zdCBKU0M6OkRPTUpJVDo6U2lnbmF0dXJlIERPTUpJ
VFNpZ25hdHVyZUZvclRlc3RET01KSVRHZXRFbGVtZW50c0J5TmFtZShqc1Rlc3RET01KSVRQcm90
b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRzQnlOYW1lV2l0aG91dFR5cGVDaGVjaywgSlNUZXN0RE9N
SklUOjppbmZvKCksIEpTQzo6RE9NSklUOjpFZmZlY3Q6OmZvclJlYWQoRE9NSklUOjpBYnN0cmFj
dEhlYXBSZXBvc2l0b3J5OjpET00pLCBET01KSVQ6OklETFJlc3VsdFR5cGVGaWx0ZXI8SURMSW50
ZXJmYWNlPE5vZGVMaXN0Pj46OnZhbHVlLCBET01KSVQ6OklETEFyZ3VtZW50VHlwZUZpbHRlcjxJ
RExBdG9tU3RyaW5nQWRhcHRvcjxJRExET01TdHJpbmc+Pjo6dmFsdWUpOworc3RhdGljIGNvbnN0
IEpTQzo6RE9NSklUOjpTaWduYXR1cmUgRE9NSklUU2lnbmF0dXJlRm9yVGVzdERPTUpJVEdldEVs
ZW1lbnRzQnlOYW1lKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uX2dldEVsZW1lbnRzQnlO
YW1lV2l0aG91dFR5cGVDaGVjaywgSlNUZXN0RE9NSklUOjppbmZvKCksIEpTQzo6RE9NSklUOjpF
ZmZlY3Q6OmZvclJlYWQoRE9NSklUOjpBYnN0cmFjdEhlYXBSZXBvc2l0b3J5OjpET00pLCBET01K
SVQ6OklETFJlc3VsdFR5cGVGaWx0ZXI8SURMSW50ZXJmYWNlPE5vZGVMaXN0Pj46OnZhbHVlLCBE
T01KSVQ6OklETEFyZ3VtZW50VHlwZUZpbHRlcjxJRExBdG9tU3RyaW5nQWRhcHRvcjxJRExET01T
dHJpbmc+Pjo6dmFsdWUpOwogCiBzdGF0aWMgY29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRl
ciBET01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklUQW55QXR0ciB7Ci0gICAganNUZXN0RE9NSklU
QW55QXR0ciwKKyAgICBqc1Rlc3RET01KSVRfYW55QXR0ciwKICNpZiBFTkFCTEUoSklUKQogICAg
ICZjb21waWxlVGVzdERPTUpJVEFueUF0dHJBdHRyaWJ1dGUsCiAjZWxzZQpAQCAtMTMxLDcgKzEz
MSw3IEBAIHN0YXRpYyBjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyIEQKIH07CiAKIHN0
YXRpYyBjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyIERPTUpJVEF0dHJpYnV0ZUZvclRl
c3RET01KSVRCb29sZWFuQXR0ciB7Ci0gICAganNUZXN0RE9NSklUQm9vbGVhbkF0dHIsCisgICAg
anNUZXN0RE9NSklUX2Jvb2xlYW5BdHRyLAogI2lmIEVOQUJMRShKSVQpCiAgICAgJmNvbXBpbGVU
ZXN0RE9NSklUQm9vbGVhbkF0dHJBdHRyaWJ1dGUsCiAjZWxzZQpAQCAtMTQxLDcgKzE0MSw3IEBA
IHN0YXRpYyBjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyIEQKIH07CiAKIHN0YXRpYyBj
b25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyIERPTUpJVEF0dHJpYnV0ZUZvclRlc3RET01K
SVRCeXRlQXR0ciB7Ci0gICAganNUZXN0RE9NSklUQnl0ZUF0dHIsCisgICAganNUZXN0RE9NSklU
X2J5dGVBdHRyLAogI2lmIEVOQUJMRShKSVQpCiAgICAgJmNvbXBpbGVUZXN0RE9NSklUQnl0ZUF0
dHJBdHRyaWJ1dGUsCiAjZWxzZQpAQCAtMTUxLDcgKzE1MSw3IEBAIHN0YXRpYyBjb25zdCBKU0M6
OkRPTUpJVDo6R2V0dGVyU2V0dGVyIEQKIH07CiAKIHN0YXRpYyBjb25zdCBKU0M6OkRPTUpJVDo6
R2V0dGVyU2V0dGVyIERPTUpJVEF0dHJpYnV0ZUZvclRlc3RET01KSVRPY3RldEF0dHIgewotICAg
IGpzVGVzdERPTUpJVE9jdGV0QXR0ciwKKyAgICBqc1Rlc3RET01KSVRfb2N0ZXRBdHRyLAogI2lm
IEVOQUJMRShKSVQpCiAgICAgJmNvbXBpbGVUZXN0RE9NSklUT2N0ZXRBdHRyQXR0cmlidXRlLAog
I2Vsc2UKQEAgLTE2MSw3ICsxNjEsNyBAQCBzdGF0aWMgY29uc3QgSlNDOjpET01KSVQ6OkdldHRl
clNldHRlciBECiB9OwogCiBzdGF0aWMgY29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlciBE
T01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklUU2hvcnRBdHRyIHsKLSAgICBqc1Rlc3RET01KSVRT
aG9ydEF0dHIsCisgICAganNUZXN0RE9NSklUX3Nob3J0QXR0ciwKICNpZiBFTkFCTEUoSklUKQog
ICAgICZjb21waWxlVGVzdERPTUpJVFNob3J0QXR0ckF0dHJpYnV0ZSwKICNlbHNlCkBAIC0xNzEs
NyArMTcxLDcgQEAgc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIgRAogfTsK
IAogc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIgRE9NSklUQXR0cmlidXRl
Rm9yVGVzdERPTUpJVFVuc2lnbmVkU2hvcnRBdHRyIHsKLSAgICBqc1Rlc3RET01KSVRVbnNpZ25l
ZFNob3J0QXR0ciwKKyAgICBqc1Rlc3RET01KSVRfdW5zaWduZWRTaG9ydEF0dHIsCiAjaWYgRU5B
QkxFKEpJVCkKICAgICAmY29tcGlsZVRlc3RET01KSVRVbnNpZ25lZFNob3J0QXR0ckF0dHJpYnV0
ZSwKICNlbHNlCkBAIC0xODEsNyArMTgxLDcgQEAgc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpH
ZXR0ZXJTZXR0ZXIgRAogfTsKIAogc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0
ZXIgRE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJVExvbmdBdHRyIHsKLSAgICBqc1Rlc3RET01K
SVRMb25nQXR0ciwKKyAgICBqc1Rlc3RET01KSVRfbG9uZ0F0dHIsCiAjaWYgRU5BQkxFKEpJVCkK
ICAgICAmY29tcGlsZVRlc3RET01KSVRMb25nQXR0ckF0dHJpYnV0ZSwKICNlbHNlCkBAIC0xOTEs
NyArMTkxLDcgQEAgc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIgRAogfTsK
IAogc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIgRE9NSklUQXR0cmlidXRl
Rm9yVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0F0dHIgewotICAgIGpzVGVzdERPTUpJVFVuc2lnbmVk
TG9uZ0F0dHIsCisgICAganNUZXN0RE9NSklUX3Vuc2lnbmVkTG9uZ0F0dHIsCiAjaWYgRU5BQkxF
KEpJVCkKICAgICAmY29tcGlsZVRlc3RET01KSVRVbnNpZ25lZExvbmdBdHRyQXR0cmlidXRlLAog
I2Vsc2UKQEAgLTIwMSw3ICsyMDEsNyBAQCBzdGF0aWMgY29uc3QgSlNDOjpET01KSVQ6OkdldHRl
clNldHRlciBECiB9OwogCiBzdGF0aWMgY29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlciBE
T01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklUTG9uZ0xvbmdBdHRyIHsKLSAgICBqc1Rlc3RET01K
SVRMb25nTG9uZ0F0dHIsCisgICAganNUZXN0RE9NSklUX2xvbmdMb25nQXR0ciwKICNpZiBFTkFC
TEUoSklUKQogICAgICZjb21waWxlVGVzdERPTUpJVExvbmdMb25nQXR0ckF0dHJpYnV0ZSwKICNl
bHNlCkBAIC0yMTEsNyArMjExLDcgQEAgc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJT
ZXR0ZXIgRAogfTsKIAogc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIgRE9N
SklUQXR0cmlidXRlRm9yVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdBdHRyIHsKLSAgICBqc1Rl
c3RET01KSVRVbnNpZ25lZExvbmdMb25nQXR0ciwKKyAgICBqc1Rlc3RET01KSVRfdW5zaWduZWRM
b25nTG9uZ0F0dHIsCiAjaWYgRU5BQkxFKEpJVCkKICAgICAmY29tcGlsZVRlc3RET01KSVRVbnNp
Z25lZExvbmdMb25nQXR0ckF0dHJpYnV0ZSwKICNlbHNlCkBAIC0yMjEsNyArMjIxLDcgQEAgc3Rh
dGljIGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIgRAogfTsKIAogc3RhdGljIGNvbnN0
IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIgRE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJVEZs
b2F0QXR0ciB7Ci0gICAganNUZXN0RE9NSklURmxvYXRBdHRyLAorICAgIGpzVGVzdERPTUpJVF9m
bG9hdEF0dHIsCiAjaWYgRU5BQkxFKEpJVCkKICAgICAmY29tcGlsZVRlc3RET01KSVRGbG9hdEF0
dHJBdHRyaWJ1dGUsCiAjZWxzZQpAQCAtMjMxLDcgKzIzMSw3IEBAIHN0YXRpYyBjb25zdCBKU0M6
OkRPTUpJVDo6R2V0dGVyU2V0dGVyIEQKIH07CiAKIHN0YXRpYyBjb25zdCBKU0M6OkRPTUpJVDo6
R2V0dGVyU2V0dGVyIERPTUpJVEF0dHJpYnV0ZUZvclRlc3RET01KSVRVbnJlc3RyaWN0ZWRGbG9h
dEF0dHIgewotICAgIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZEZsb2F0QXR0ciwKKyAgICBqc1Rl
c3RET01KSVRfdW5yZXN0cmljdGVkRmxvYXRBdHRyLAogI2lmIEVOQUJMRShKSVQpCiAgICAgJmNv
bXBpbGVUZXN0RE9NSklUVW5yZXN0cmljdGVkRmxvYXRBdHRyQXR0cmlidXRlLAogI2Vsc2UKQEAg
LTI0MSw3ICsyNDEsNyBAQCBzdGF0aWMgY29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlciBE
CiB9OwogCiBzdGF0aWMgY29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlciBET01KSVRBdHRy
aWJ1dGVGb3JUZXN0RE9NSklURG91YmxlQXR0ciB7Ci0gICAganNUZXN0RE9NSklURG91YmxlQXR0
ciwKKyAgICBqc1Rlc3RET01KSVRfZG91YmxlQXR0ciwKICNpZiBFTkFCTEUoSklUKQogICAgICZj
b21waWxlVGVzdERPTUpJVERvdWJsZUF0dHJBdHRyaWJ1dGUsCiAjZWxzZQpAQCAtMjUxLDcgKzI1
MSw3IEBAIHN0YXRpYyBjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyIEQKIH07CiAKIHN0
YXRpYyBjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyIERPTUpJVEF0dHJpYnV0ZUZvclRl
c3RET01KSVRVbnJlc3RyaWN0ZWREb3VibGVBdHRyIHsKLSAgICBqc1Rlc3RET01KSVRVbnJlc3Ry
aWN0ZWREb3VibGVBdHRyLAorICAgIGpzVGVzdERPTUpJVF91bnJlc3RyaWN0ZWREb3VibGVBdHRy
LAogI2lmIEVOQUJMRShKSVQpCiAgICAgJmNvbXBpbGVUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91
YmxlQXR0ckF0dHJpYnV0ZSwKICNlbHNlCkBAIC0yNjEsNyArMjYxLDcgQEAgc3RhdGljIGNvbnN0
IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIgRAogfTsKIAogc3RhdGljIGNvbnN0IEpTQzo6RE9N
SklUOjpHZXR0ZXJTZXR0ZXIgRE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJVERvbVN0cmluZ0F0
dHIgewotICAgIGpzVGVzdERPTUpJVERvbVN0cmluZ0F0dHIsCisgICAganNUZXN0RE9NSklUX2Rv
bVN0cmluZ0F0dHIsCiAjaWYgRU5BQkxFKEpJVCkKICAgICAmY29tcGlsZVRlc3RET01KSVREb21T
dHJpbmdBdHRyQXR0cmlidXRlLAogI2Vsc2UKQEAgLTI3MSw3ICsyNzEsNyBAQCBzdGF0aWMgY29u
c3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlciBECiB9OwogCiBzdGF0aWMgY29uc3QgSlNDOjpE
T01KSVQ6OkdldHRlclNldHRlciBET01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklUQnl0ZVN0cmlu
Z0F0dHIgewotICAgIGpzVGVzdERPTUpJVEJ5dGVTdHJpbmdBdHRyLAorICAgIGpzVGVzdERPTUpJ
VF9ieXRlU3RyaW5nQXR0ciwKICNpZiBFTkFCTEUoSklUKQogICAgICZjb21waWxlVGVzdERPTUpJ
VEJ5dGVTdHJpbmdBdHRyQXR0cmlidXRlLAogI2Vsc2UKQEAgLTI4MSw3ICsyODEsNyBAQCBzdGF0
aWMgY29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlciBECiB9OwogCiBzdGF0aWMgY29uc3Qg
SlNDOjpET01KSVQ6OkdldHRlclNldHRlciBET01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklUVXN2
U3RyaW5nQXR0ciB7Ci0gICAganNUZXN0RE9NSklUVXN2U3RyaW5nQXR0ciwKKyAgICBqc1Rlc3RE
T01KSVRfdXN2U3RyaW5nQXR0ciwKICNpZiBFTkFCTEUoSklUKQogICAgICZjb21waWxlVGVzdERP
TUpJVFVzdlN0cmluZ0F0dHJBdHRyaWJ1dGUsCiAjZWxzZQpAQCAtMjkxLDcgKzI5MSw3IEBAIHN0
YXRpYyBjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyIEQKIH07CiAKIHN0YXRpYyBjb25z
dCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyIERPTUpJVEF0dHJpYnV0ZUZvclRlc3RET01KSVRO
b2RlQXR0ciB7Ci0gICAganNUZXN0RE9NSklUTm9kZUF0dHIsCisgICAganNUZXN0RE9NSklUX25v
ZGVBdHRyLAogI2lmIEVOQUJMRShKSVQpCiAgICAgJmNvbXBpbGVUZXN0RE9NSklUTm9kZUF0dHJB
dHRyaWJ1dGUsCiAjZWxzZQpAQCAtMzAxLDcgKzMwMSw3IEBAIHN0YXRpYyBjb25zdCBKU0M6OkRP
TUpJVDo6R2V0dGVyU2V0dGVyIEQKIH07CiAKIHN0YXRpYyBjb25zdCBKU0M6OkRPTUpJVDo6R2V0
dGVyU2V0dGVyIERPTUpJVEF0dHJpYnV0ZUZvclRlc3RET01KSVRCb29sZWFuTnVsbGFibGVBdHRy
IHsKLSAgICBqc1Rlc3RET01KSVRCb29sZWFuTnVsbGFibGVBdHRyLAorICAgIGpzVGVzdERPTUpJ
VF9ib29sZWFuTnVsbGFibGVBdHRyLAogI2lmIEVOQUJMRShKSVQpCiAgICAgJmNvbXBpbGVUZXN0
RE9NSklUQm9vbGVhbk51bGxhYmxlQXR0ckF0dHJpYnV0ZSwKICNlbHNlCkBAIC0zMTEsNyArMzEx
LDcgQEAgc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIgRAogfTsKIAogc3Rh
dGljIGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIgRE9NSklUQXR0cmlidXRlRm9yVGVz
dERPTUpJVEJ5dGVOdWxsYWJsZUF0dHIgewotICAgIGpzVGVzdERPTUpJVEJ5dGVOdWxsYWJsZUF0
dHIsCisgICAganNUZXN0RE9NSklUX2J5dGVOdWxsYWJsZUF0dHIsCiAjaWYgRU5BQkxFKEpJVCkK
ICAgICAmY29tcGlsZVRlc3RET01KSVRCeXRlTnVsbGFibGVBdHRyQXR0cmlidXRlLAogI2Vsc2UK
QEAgLTMyMSw3ICszMjEsNyBAQCBzdGF0aWMgY29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRl
ciBECiB9OwogCiBzdGF0aWMgY29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlciBET01KSVRB
dHRyaWJ1dGVGb3JUZXN0RE9NSklUT2N0ZXROdWxsYWJsZUF0dHIgewotICAgIGpzVGVzdERPTUpJ
VE9jdGV0TnVsbGFibGVBdHRyLAorICAgIGpzVGVzdERPTUpJVF9vY3RldE51bGxhYmxlQXR0ciwK
ICNpZiBFTkFCTEUoSklUKQogICAgICZjb21waWxlVGVzdERPTUpJVE9jdGV0TnVsbGFibGVBdHRy
QXR0cmlidXRlLAogI2Vsc2UKQEAgLTMzMSw3ICszMzEsNyBAQCBzdGF0aWMgY29uc3QgSlNDOjpE
T01KSVQ6OkdldHRlclNldHRlciBECiB9OwogCiBzdGF0aWMgY29uc3QgSlNDOjpET01KSVQ6Okdl
dHRlclNldHRlciBET01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklUU2hvcnROdWxsYWJsZUF0dHIg
ewotICAgIGpzVGVzdERPTUpJVFNob3J0TnVsbGFibGVBdHRyLAorICAgIGpzVGVzdERPTUpJVF9z
aG9ydE51bGxhYmxlQXR0ciwKICNpZiBFTkFCTEUoSklUKQogICAgICZjb21waWxlVGVzdERPTUpJ
VFNob3J0TnVsbGFibGVBdHRyQXR0cmlidXRlLAogI2Vsc2UKQEAgLTM0MSw3ICszNDEsNyBAQCBz
dGF0aWMgY29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlciBECiB9OwogCiBzdGF0aWMgY29u
c3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlciBET01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklU
VW5zaWduZWRTaG9ydE51bGxhYmxlQXR0ciB7Ci0gICAganNUZXN0RE9NSklUVW5zaWduZWRTaG9y
dE51bGxhYmxlQXR0ciwKKyAgICBqc1Rlc3RET01KSVRfdW5zaWduZWRTaG9ydE51bGxhYmxlQXR0
ciwKICNpZiBFTkFCTEUoSklUKQogICAgICZjb21waWxlVGVzdERPTUpJVFVuc2lnbmVkU2hvcnRO
dWxsYWJsZUF0dHJBdHRyaWJ1dGUsCiAjZWxzZQpAQCAtMzUxLDcgKzM1MSw3IEBAIHN0YXRpYyBj
b25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyIEQKIH07CiAKIHN0YXRpYyBjb25zdCBKU0M6
OkRPTUpJVDo6R2V0dGVyU2V0dGVyIERPTUpJVEF0dHJpYnV0ZUZvclRlc3RET01KSVRMb25nTnVs
bGFibGVBdHRyIHsKLSAgICBqc1Rlc3RET01KSVRMb25nTnVsbGFibGVBdHRyLAorICAgIGpzVGVz
dERPTUpJVF9sb25nTnVsbGFibGVBdHRyLAogI2lmIEVOQUJMRShKSVQpCiAgICAgJmNvbXBpbGVU
ZXN0RE9NSklUTG9uZ051bGxhYmxlQXR0ckF0dHJpYnV0ZSwKICNlbHNlCkBAIC0zNjEsNyArMzYx
LDcgQEAgc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIgRAogfTsKIAogc3Rh
dGljIGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIgRE9NSklUQXR0cmlidXRlRm9yVGVz
dERPTUpJVFVuc2lnbmVkTG9uZ051bGxhYmxlQXR0ciB7Ci0gICAganNUZXN0RE9NSklUVW5zaWdu
ZWRMb25nTnVsbGFibGVBdHRyLAorICAgIGpzVGVzdERPTUpJVF91bnNpZ25lZExvbmdOdWxsYWJs
ZUF0dHIsCiAjaWYgRU5BQkxFKEpJVCkKICAgICAmY29tcGlsZVRlc3RET01KSVRVbnNpZ25lZExv
bmdOdWxsYWJsZUF0dHJBdHRyaWJ1dGUsCiAjZWxzZQpAQCAtMzcxLDcgKzM3MSw3IEBAIHN0YXRp
YyBjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyIEQKIH07CiAKIHN0YXRpYyBjb25zdCBK
U0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyIERPTUpJVEF0dHJpYnV0ZUZvclRlc3RET01KSVRMb25n
TG9uZ051bGxhYmxlQXR0ciB7Ci0gICAganNUZXN0RE9NSklUTG9uZ0xvbmdOdWxsYWJsZUF0dHIs
CisgICAganNUZXN0RE9NSklUX2xvbmdMb25nTnVsbGFibGVBdHRyLAogI2lmIEVOQUJMRShKSVQp
CiAgICAgJmNvbXBpbGVUZXN0RE9NSklUTG9uZ0xvbmdOdWxsYWJsZUF0dHJBdHRyaWJ1dGUsCiAj
ZWxzZQpAQCAtMzgxLDcgKzM4MSw3IEBAIHN0YXRpYyBjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVy
U2V0dGVyIEQKIH07CiAKIHN0YXRpYyBjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyIERP
TUpJVEF0dHJpYnV0ZUZvclRlc3RET01KSVRVbnNpZ25lZExvbmdMb25nTnVsbGFibGVBdHRyIHsK
LSAgICBqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdMb25nTnVsbGFibGVBdHRyLAorICAgIGpzVGVz
dERPTUpJVF91bnNpZ25lZExvbmdMb25nTnVsbGFibGVBdHRyLAogI2lmIEVOQUJMRShKSVQpCiAg
ICAgJmNvbXBpbGVUZXN0RE9NSklUVW5zaWduZWRMb25nTG9uZ051bGxhYmxlQXR0ckF0dHJpYnV0
ZSwKICNlbHNlCkBAIC0zOTEsNyArMzkxLDcgQEAgc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpH
ZXR0ZXJTZXR0ZXIgRAogfTsKIAogc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0
ZXIgRE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJVEZsb2F0TnVsbGFibGVBdHRyIHsKLSAgICBq
c1Rlc3RET01KSVRGbG9hdE51bGxhYmxlQXR0ciwKKyAgICBqc1Rlc3RET01KSVRfZmxvYXROdWxs
YWJsZUF0dHIsCiAjaWYgRU5BQkxFKEpJVCkKICAgICAmY29tcGlsZVRlc3RET01KSVRGbG9hdE51
bGxhYmxlQXR0ckF0dHJpYnV0ZSwKICNlbHNlCkBAIC00MDEsNyArNDAxLDcgQEAgc3RhdGljIGNv
bnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIgRAogfTsKIAogc3RhdGljIGNvbnN0IEpTQzo6
RE9NSklUOjpHZXR0ZXJTZXR0ZXIgRE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJVFVucmVzdHJp
Y3RlZEZsb2F0TnVsbGFibGVBdHRyIHsKLSAgICBqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWRGbG9h
dE51bGxhYmxlQXR0ciwKKyAgICBqc1Rlc3RET01KSVRfdW5yZXN0cmljdGVkRmxvYXROdWxsYWJs
ZUF0dHIsCiAjaWYgRU5BQkxFKEpJVCkKICAgICAmY29tcGlsZVRlc3RET01KSVRVbnJlc3RyaWN0
ZWRGbG9hdE51bGxhYmxlQXR0ckF0dHJpYnV0ZSwKICNlbHNlCkBAIC00MTEsNyArNDExLDcgQEAg
c3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIgRAogfTsKIAogc3RhdGljIGNv
bnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIgRE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJ
VERvdWJsZU51bGxhYmxlQXR0ciB7Ci0gICAganNUZXN0RE9NSklURG91YmxlTnVsbGFibGVBdHRy
LAorICAgIGpzVGVzdERPTUpJVF9kb3VibGVOdWxsYWJsZUF0dHIsCiAjaWYgRU5BQkxFKEpJVCkK
ICAgICAmY29tcGlsZVRlc3RET01KSVREb3VibGVOdWxsYWJsZUF0dHJBdHRyaWJ1dGUsCiAjZWxz
ZQpAQCAtNDIxLDcgKzQyMSw3IEBAIHN0YXRpYyBjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0
dGVyIEQKIH07CiAKIHN0YXRpYyBjb25zdCBKU0M6OkRPTUpJVDo6R2V0dGVyU2V0dGVyIERPTUpJ
VEF0dHJpYnV0ZUZvclRlc3RET01KSVRVbnJlc3RyaWN0ZWREb3VibGVOdWxsYWJsZUF0dHIgewot
ICAgIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZERvdWJsZU51bGxhYmxlQXR0ciwKKyAgICBqc1Rl
c3RET01KSVRfdW5yZXN0cmljdGVkRG91YmxlTnVsbGFibGVBdHRyLAogI2lmIEVOQUJMRShKSVQp
CiAgICAgJmNvbXBpbGVUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91YmxlTnVsbGFibGVBdHRyQXR0
cmlidXRlLAogI2Vsc2UKQEAgLTQzMSw3ICs0MzEsNyBAQCBzdGF0aWMgY29uc3QgSlNDOjpET01K
SVQ6OkdldHRlclNldHRlciBECiB9OwogCiBzdGF0aWMgY29uc3QgSlNDOjpET01KSVQ6OkdldHRl
clNldHRlciBET01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklURG9tU3RyaW5nTnVsbGFibGVBdHRy
IHsKLSAgICBqc1Rlc3RET01KSVREb21TdHJpbmdOdWxsYWJsZUF0dHIsCisgICAganNUZXN0RE9N
SklUX2RvbVN0cmluZ051bGxhYmxlQXR0ciwKICNpZiBFTkFCTEUoSklUKQogICAgICZjb21waWxl
VGVzdERPTUpJVERvbVN0cmluZ051bGxhYmxlQXR0ckF0dHJpYnV0ZSwKICNlbHNlCkBAIC00NDEs
NyArNDQxLDcgQEAgc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIgRAogfTsK
IAogc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIgRE9NSklUQXR0cmlidXRl
Rm9yVGVzdERPTUpJVEJ5dGVTdHJpbmdOdWxsYWJsZUF0dHIgewotICAgIGpzVGVzdERPTUpJVEJ5
dGVTdHJpbmdOdWxsYWJsZUF0dHIsCisgICAganNUZXN0RE9NSklUX2J5dGVTdHJpbmdOdWxsYWJs
ZUF0dHIsCiAjaWYgRU5BQkxFKEpJVCkKICAgICAmY29tcGlsZVRlc3RET01KSVRCeXRlU3RyaW5n
TnVsbGFibGVBdHRyQXR0cmlidXRlLAogI2Vsc2UKQEAgLTQ1MSw3ICs0NTEsNyBAQCBzdGF0aWMg
Y29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlciBECiB9OwogCiBzdGF0aWMgY29uc3QgSlND
OjpET01KSVQ6OkdldHRlclNldHRlciBET01KSVRBdHRyaWJ1dGVGb3JUZXN0RE9NSklUVXN2U3Ry
aW5nTnVsbGFibGVBdHRyIHsKLSAgICBqc1Rlc3RET01KSVRVc3ZTdHJpbmdOdWxsYWJsZUF0dHIs
CisgICAganNUZXN0RE9NSklUX3VzdlN0cmluZ051bGxhYmxlQXR0ciwKICNpZiBFTkFCTEUoSklU
KQogICAgICZjb21waWxlVGVzdERPTUpJVFVzdlN0cmluZ051bGxhYmxlQXR0ckF0dHJpYnV0ZSwK
ICNlbHNlCkBAIC00NjEsNyArNDYxLDcgQEAgc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0
ZXJTZXR0ZXIgRAogfTsKIAogc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIg
RE9NSklUQXR0cmlidXRlRm9yVGVzdERPTUpJVE5vZGVOdWxsYWJsZUF0dHIgewotICAgIGpzVGVz
dERPTUpJVE5vZGVOdWxsYWJsZUF0dHIsCisgICAganNUZXN0RE9NSklUX25vZGVOdWxsYWJsZUF0
dHIsCiAjaWYgRU5BQkxFKEpJVCkKICAgICAmY29tcGlsZVRlc3RET01KSVROb2RlTnVsbGFibGVB
dHRyQXR0cmlidXRlLAogI2Vsc2UKQEAgLTU1OCwxMSArNTU4LDExIEBAIHN0YXRpYyBjb25zdCBI
YXNoVGFibGVWYWx1ZSBKU1Rlc3RET01KSVQKICAgICB7ICJieXRlU3RyaW5nTnVsbGFibGVBdHRy
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpET01KSVRBdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OkdldHRlclNldHRlcio+KCZET01KSVRBdHRyaWJ1
dGVGb3JUZXN0RE9NSklUQnl0ZVN0cmluZ051bGxhYmxlQXR0ciksIChpbnRwdHJfdCkgKDApIH0g
fSwKICAgICB7ICJ1c3ZTdHJpbmdOdWxsYWJsZUF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUpJVEF0dHJpYnV0
ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxjb25zdCBKU0M6OkRPTUpJ
VDo6R2V0dGVyU2V0dGVyKj4oJkRPTUpJVEF0dHJpYnV0ZUZvclRlc3RET01KSVRVc3ZTdHJpbmdO
dWxsYWJsZUF0dHIpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAibm9kZU51bGxhYmxlQXR0
ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RE9NSklUQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpHZXR0ZXJTZXR0ZXIqPigmRE9NSklUQXR0cmli
dXRlRm9yVGVzdERPTUpJVE5vZGVOdWxsYWJsZUF0dHIpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0g
ICAgeyAiZ2V0QXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkZ1bmN0aW9uIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NSklURnVuY3Rp
b24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rp
b24+KGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0QXR0cmlidXRlKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6U2lnbmF0dXJlKj4oJkRPTUpJVFNpZ25h
dHVyZUZvclRlc3RET01KSVRHZXRBdHRyaWJ1dGUpIH0gfSwKLSAgICB7ICJpdGVtIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RE9NSklURnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1
bmN0aW9uSXRlbSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OlNp
Z25hdHVyZSo+KCZET01KSVRTaWduYXR1cmVGb3JUZXN0RE9NSklUSXRlbSkgfSB9LAotICAgIHsg
Imhhc0F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpGdW5jdGlvbiB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUpJVEZ1bmN0aW9uKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkhhc0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8Y29uc3QgSlNDOjpET01KSVQ6OlNpZ25hdHVyZSo+KCZET01KSVRTaWduYXR1cmVG
b3JUZXN0RE9NSklUSGFzQXR0cmlidXRlKSB9IH0sCi0gICAgeyAiZ2V0RWxlbWVudEJ5SWQiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24gfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0RE9NSklUUHJvdG90
eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZCksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8Y29uc3Qg
SlNDOjpET01KSVQ6OlNpZ25hdHVyZSo+KCZET01KSVRTaWduYXR1cmVGb3JUZXN0RE9NSklUR2V0
RWxlbWVudEJ5SWQpIH0gfSwKLSAgICB7ICJnZXRFbGVtZW50c0J5TmFtZSIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRPTUpJVEZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlv
bkdldEVsZW1lbnRzQnlOYW1lKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxjb25zdCBKU0M6OkRP
TUpJVDo6U2lnbmF0dXJlKj4oJkRPTUpJVFNpZ25hdHVyZUZvclRlc3RET01KSVRHZXRFbGVtZW50
c0J5TmFtZSkgfSB9LAorICAgIHsgImdldEF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRPTUpJVEZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbl9nZXRBdHRy
aWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpTaWduYXR1
cmUqPigmRE9NSklUU2lnbmF0dXJlRm9yVGVzdERPTUpJVEdldEF0dHJpYnV0ZSkgfSB9LAorICAg
IHsgIml0ZW0iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RnVuY3Rpb24gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01KSVRGdW5jdGlvbiksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0
RE9NSklUUHJvdG90eXBlRnVuY3Rpb25faXRlbSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8Y29u
c3QgSlNDOjpET01KSVQ6OlNpZ25hdHVyZSo+KCZET01KSVRTaWduYXR1cmVGb3JUZXN0RE9NSklU
SXRlbSkgfSB9LAorICAgIHsgImhhc0F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRPTUpJVEZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJh
d05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbl9oYXNBdHRyaWJ1
dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PGNvbnN0IEpTQzo6RE9NSklUOjpTaWduYXR1cmUq
PigmRE9NSklUU2lnbmF0dXJlRm9yVGVzdERPTUpJVEhhc0F0dHJpYnV0ZSkgfSB9LAorICAgIHsg
ImdldEVsZW1lbnRCeUlkIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkZ1bmN0aW9uIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NSklURnVuY3Rpb24p
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+
KGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uX2dldEVsZW1lbnRCeUlkKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6U2lnbmF0dXJlKj4oJkRPTUpJVFNpZ25h
dHVyZUZvclRlc3RET01KSVRHZXRFbGVtZW50QnlJZCkgfSB9LAorICAgIHsgImdldEVsZW1lbnRz
QnlOYW1lIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1
bmN0aW9uIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NSklURnVuY3Rpb24pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdERP
TUpJVFByb3RvdHlwZUZ1bmN0aW9uX2dldEVsZW1lbnRzQnlOYW1lKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxjb25zdCBKU0M6OkRPTUpJVDo6U2lnbmF0dXJlKj4oJkRPTUpJVFNpZ25hdHVyZUZv
clRlc3RET01KSVRHZXRFbGVtZW50c0J5TmFtZSkgfSB9LAogfTsKIAogY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdERPTUpJVFByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdERPTUpJVCIsICZCYXNlOjpz
X2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RE9NSklU
UHJvdG90eXBlKSB9OwpAQCAtNjM4LDcgKzYzOCw3IEBAIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RET01KSVQKICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVl
KSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRBbnlBdHRyR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RET01KSVQmIHRoaXNP
YmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUX2FueUF0dHJHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCYgdGhpc09i
amVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjQ2
LDEyICs2NDYsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVEFueUF0dAog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExBbnk+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYW55QXR0cigpKSkpOwogfQogCi1KU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUQW55QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUX2FueUF0dHIsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklU
Pjo6Z2V0PGpzVGVzdERPTUpJVEFueUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJhbnlBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01K
SVQ+OjpnZXQ8anNUZXN0RE9NSklUX2FueUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJhbnlBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RET01KSVRCb29sZWFuQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0RE9NSklUJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdERPTUpJVF9ib29sZWFuQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNUZXN0RE9NSklUJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02NTksMTIgKzY1OSwxMiBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0RE9NSklUQm9vbGVhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETEJvb2xlYW4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGltcGwuYm9vbGVhbkF0dHIoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdERPTUpJVEJvb2xlYW5BdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRfYm9vbGVhbkF0dHIsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVz
dERPTUpJVEJvb2xlYW5BdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAiYm9vbGVhbkF0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46
OmdldDxqc1Rlc3RET01KSVRfYm9vbGVhbkF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJib29sZWFuQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0RE9NSklUQnl0ZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTVGVzdERPTUpJVCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RET01KSVRfYnl0ZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTVGVzdERPTUpJVCYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjcyLDEyICs2NzIsMTIgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdERPTUpJVEJ5dGVBdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExCeXRlPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBs
LmJ5dGVBdHRyKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01K
SVRCeXRlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNUZXN0RE9NSklUX2J5dGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRCeXRlQXR0
ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImJ5dGVBdHRyIik7Cisg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUX2J5
dGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYnl0ZUF0dHIi
KTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVE9jdGV0QXR0ckdldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklUJiB0aGlz
T2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVF9vY3RldEF0dHJHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCYgdGhp
c09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
Njg1LDEyICs2ODUsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVE9jdGV0
QQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExPY3RldD4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5vY3RldEF0dHIoKSkpKTsKIH0KIAot
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVE9jdGV0QXR0ciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUX29jdGV0
QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUT2N0ZXRBdHRyR2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAib2N0ZXRBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUX29jdGV0QXR0ckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm9jdGV0QXR0ciIpOwogfQogCi1zdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUU2hvcnRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RET01KSVQmIHRoaXNPYmplY3QpCitzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUX3Nob3J0QXR0ckdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklUJiB0aGlzT2JqZWN0KQogewogICAg
IGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02OTgsMTIgKzY5OCwxMiBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUU2hvcnRBCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFNob3J0PihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLnNob3J0QXR0cigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0RE9NSklUU2hvcnRBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRfc2hvcnRBdHRyLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46Omdl
dDxqc1Rlc3RET01KSVRTaG9ydEF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJzaG9ydEF0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJ
VD46OmdldDxqc1Rlc3RET01KSVRfc2hvcnRBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAic2hvcnRBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RET01KSVRVbnNpZ25lZFNob3J0QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklUJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdERPTUpJVF91bnNpZ25lZFNob3J0QXR0ckdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklUJiB0aGlzT2JqZWN0KQogewogICAg
IGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC03MTEsMTIgKzcxMSwxMiBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUVW5zaWduCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVuc2lnbmVkU2hvcnQ+KGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudW5zaWduZWRTaG9ydEF0dHIoKSkpKTsKIH0KIAot
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVFVuc2lnbmVkU2hvcnRBdHRyLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01K
SVRfdW5zaWduZWRTaG9ydEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVFVuc2lnbmVkU2hv
cnRBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidW5zaWduZWRT
aG9ydEF0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxq
c1Rlc3RET01KSVRfdW5zaWduZWRTaG9ydEF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJ1bnNpZ25lZFNob3J0QXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0RE9NSklUTG9uZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RET01KSVRfbG9uZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9
IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNzI0LDEyICs3MjQsMTIgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVExvbmdBdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLmxvbmdBdHRyKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RET01KSVRMb25nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0RE9NSklUX2xvbmdBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
LSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRM
b25nQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImxvbmdBdHRy
Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9N
SklUX2xvbmdBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibG9u
Z0F0dHIiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVuc2lnbmVk
TG9uZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVz
dERPTUpJVCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRf
dW5zaWduZWRMb25nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNUZXN0RE9NSklUJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC03MzcsMTIgKzczNywxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0RE9NSklUVW5zaWduCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETFVuc2lnbmVkTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
aW1wbC51bnNpZ25lZExvbmdBdHRyKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRfdW5zaWduZWRMb25nQXR0ciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01K
SVQ+OjpnZXQ8anNUZXN0RE9NSklUVW5zaWduZWRMb25nQXR0ckdldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInVuc2lnbmVkTG9uZ0F0dHIiKTsKKyAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRfdW5zaWduZWRMb25nQXR0
ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVuc2lnbmVkTG9uZ0F0
dHIiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVExvbmdMb25nQXR0
ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklU
JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVF9sb25nTG9u
Z0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERP
TUpJVCYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtNzUwLDEyICs3NTAsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERP
TUpJVExvbmdMbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExM
b25nTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5sb25nTG9uZ0F0
dHIoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVExvbmdM
b25nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0RE9NSklUX2xvbmdMb25nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUTG9uZ0xv
bmdBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibG9uZ0xvbmdB
dHRyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0
RE9NSklUX2xvbmdMb25nQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgImxvbmdMb25nQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9N
SklUVW5zaWduZWRMb25nTG9uZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdERPTUpJVCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RET01KSVRfdW5zaWduZWRMb25nTG9uZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCYgdGhpc09iamVjdCkKIHsKICAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNzYzLDEyICs3NjMsMTIgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVuc2lnbgogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExVbnNpZ25lZExvbmdMb25nPihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVuc2lnbmVkTG9uZ0xvbmdBdHRyKCkpKSk7CiB9
CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdMb25n
QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0RE9NSklUX3Vuc2lnbmVkTG9uZ0xvbmdBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
LSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRV
bnNpZ25lZExvbmdMb25nQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInVuc2lnbmVkTG9uZ0xvbmdBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUX3Vuc2lnbmVkTG9uZ0xvbmdBdHRyR2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidW5zaWduZWRMb25nTG9uZ0F0dHIiKTsK
IH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVEZsb2F0QXR0ckdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklUJiB0aGlzT2Jq
ZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVF9mbG9hdEF0dHJHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCYgdGhpc09i
amVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNzc2
LDEyICs3NzYsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVEZsb2F0QQog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExGbG9hdD4obGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5mbG9hdEF0dHIoKSkpKTsKIH0KIAotSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVEZsb2F0QXR0ciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUX2Zsb2F0QXR0
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklURmxvYXRBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiZmxvYXRBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUX2Zsb2F0QXR0ckdldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImZsb2F0QXR0ciIpOwogfQogCi1zdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0RE9NSklUVW5yZXN0cmljdGVkRmxvYXRBdHRyR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RET01KSVQmIHRoaXNPYmplY3Qp
CitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUX3VucmVzdHJpY3RlZEZsb2F0QXR0
ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklU
JiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC03ODksMTIgKzc4OSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklU
VW5yZXN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVucmVz
dHJpY3RlZEZsb2F0PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVucmVz
dHJpY3RlZEZsb2F0QXR0cigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0RE9NSklUVW5yZXN0cmljdGVkRmxvYXRBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRfdW5yZXN0cmljdGVkRmxvYXRBdHRy
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWRGbG9hdEF0dHJHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnJlc3RyaWN0ZWRGbG9hdEF0dHIiKTsK
KyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRf
dW5yZXN0cmljdGVkRmxvYXRBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAidW5yZXN0cmljdGVkRmxvYXRBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RET01KSVREb3VibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1Rlc3RET01KSVQmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0RE9NSklUX2RvdWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9
IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODAyLDEyICs4MDIsMTIgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVERvdWJsZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExEb3VibGU+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGltcGwuZG91YmxlQXR0cigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0RE9NSklURG91YmxlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUX2RvdWJsZUF0dHIsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVz
dERPTUpJVERvdWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJkb3VibGVBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+Ojpn
ZXQ8anNUZXN0RE9NSklUX2RvdWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJkb3VibGVBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RET01KSVRVbnJlc3RyaWN0ZWREb3VibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RET01KSVQmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0RE9NSklUX3VucmVzdHJpY3RlZERvdWJsZUF0dHJHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCYgdGhpc09iamVjdCkK
IHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODE1LDEyICs4
MTUsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVucmVzdAogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExVbnJlc3RyaWN0ZWREb3VibGU+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudW5yZXN0cmljdGVkRG91Ymxl
QXR0cigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUVW5y
ZXN0cmljdGVkRG91YmxlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0RE9NSklUX3VucmVzdHJpY3RlZERvdWJsZUF0dHIsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6
Z2V0PGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZERvdWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnJlc3RyaWN0ZWREb3VibGVBdHRyIik7CisgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUX3VucmVzdHJp
Y3RlZERvdWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1
bnJlc3RyaWN0ZWREb3VibGVBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RET01KSVREb21TdHJpbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RET01KSVQmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0RE9NSklUX2RvbVN0cmluZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9
IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODI4LDEyICs4MjgsMTIgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVERvbVN0cgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIGltcGwuZG9tU3RyaW5nQXR0cigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0RE9NSklURG9tU3RyaW5nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUX2RvbVN0cmluZ0F0dHIsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklU
Pjo6Z2V0PGpzVGVzdERPTUpJVERvbVN0cmluZ0F0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJkb21TdHJpbmdBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUX2RvbVN0cmluZ0F0dHJHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJkb21TdHJpbmdBdHRyIik7CiB9CiAKLXN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRCeXRlU3RyaW5nQXR0ckdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklUJiB0aGlzT2JqZWN0
KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVF9ieXRlU3RyaW5nQXR0ckdldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklUJiB0aGlz
T2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04
NDEsMTIgKzg0MSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUQnl0ZVN0
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEJ5dGVTdHJpbmc+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYnl0ZVN0cmluZ0F0dHIoKSkp
KTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVEJ5dGVTdHJpbmdB
dHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RET01KSVRfYnl0ZVN0cmluZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVEJ5dGVTdHJp
bmdBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYnl0ZVN0cmlu
Z0F0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rl
c3RET01KSVRfYnl0ZVN0cmluZ0F0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJieXRlU3RyaW5nQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0RE9NSklUVXN2U3RyaW5nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNUZXN0RE9NSklUJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdERPTUpJVF91c3ZTdHJpbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RET01KSVQmIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0g
PSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg1NCwxMiArODU0LDEyIEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRVc3ZTdHIKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMVVNWU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLnVzdlN0cmluZ0F0dHIoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdERPTUpJVFVzdlN0cmluZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVF91c3ZTdHJpbmdBdHRyLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJ
VD46OmdldDxqc1Rlc3RET01KSVRVc3ZTdHJpbmdBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAidXN2U3RyaW5nQXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVF91c3ZTdHJpbmdBdHRyR2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidXN2U3RyaW5nQXR0ciIpOwogfQogCi1z
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUTm9kZUF0dHJHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCYgdGhpc09iamVjdCkKK3N0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRfbm9kZUF0dHJHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCYgdGhpc09iamVjdCkKIHsK
ICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODY3LDEyICs4Njcs
MTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVE5vZGVBdAogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KGxleGlj
YWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBp
bXBsLm5vZGVBdHRyKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RE
T01KSVROb2RlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0RE9NSklUX25vZGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVROb2Rl
QXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm5vZGVBdHRyIik7
CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklU
X25vZGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibm9kZUF0
dHIiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVEJvb2xlYW5OdWxs
YWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVz
dERPTUpJVCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRf
Ym9vbGVhbk51bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0RE9NSklUJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC04ODAsMTIgKzg4MCwxMiBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0RE9NSklUQm9vbGVhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETE51bGxhYmxlPElETEJvb2xlYW4+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBpbXBsLmJvb2xlYW5OdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVEJvb2xlYW5OdWxsYWJsZUF0dHIsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVF9ib29s
ZWFuTnVsbGFibGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRCb29sZWFuTnVsbGFibGVB
dHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYm9vbGVhbk51bGxh
YmxlQXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpz
VGVzdERPTUpJVF9ib29sZWFuTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiYm9vbGVhbk51bGxhYmxlQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0RE9NSklUQnl0ZU51bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklUJiB0aGlzT2JqZWN0KQorc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVF9ieXRlTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RET01KSVQmIHRoaXNPYmplY3Qp
CiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg5MywxMiAr
ODkzLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRCeXRlTnUKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMQnl0ZT4+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYnl0ZU51bGxhYmxlQXR0cigp
KSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUQnl0ZU51bGxh
YmxlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0RE9NSklUX2J5dGVOdWxsYWJsZUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewot
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVEJ5
dGVOdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJi
eXRlTnVsbGFibGVBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+
OjpnZXQ8anNUZXN0RE9NSklUX2J5dGVOdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJieXRlTnVsbGFibGVBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRPY3RldE51bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklUJiB0aGlzT2JqZWN0KQorc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVF9vY3RldE51bGxhYmxlQXR0ckdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklUJiB0aGlzT2Jq
ZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05MDYs
MTIgKzkwNiwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUT2N0ZXROCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETE9j
dGV0Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5vY3RldE51bGxhYmxl
QXR0cigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUT2N0
ZXROdWxsYWJsZUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdERPTUpJVF9vY3RldE51bGxhYmxlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0
RE9NSklUT2N0ZXROdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJvY3RldE51bGxhYmxlQXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVF9vY3RldE51bGxhYmxlQXR0ckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm9jdGV0TnVsbGFibGVBdHRyIik7CiB9CiAK
LXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRTaG9ydE51bGxhYmxlQXR0ckdldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklUJiB0aGlz
T2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVF9zaG9ydE51bGxhYmxl
QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RE9N
SklUJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC05MTksMTIgKzkxOSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9N
SklUU2hvcnROCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51
bGxhYmxlPElETFNob3J0Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5z
aG9ydE51bGxhYmxlQXR0cigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0RE9NSklUU2hvcnROdWxsYWJsZUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVF9zaG9ydE51bGxhYmxlQXR0ciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+
OjpnZXQ8anNUZXN0RE9NSklUU2hvcnROdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJzaG9ydE51bGxhYmxlQXR0ciIpOworICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVF9zaG9ydE51bGxhYmxlQXR0
ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNob3J0TnVsbGFibGVB
dHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnNpZ25lZFNo
b3J0TnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RET01KSVQmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
RE9NSklUX3Vuc2lnbmVkU2hvcnROdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCYgdGhpc09iamVjdCkKIHsKICAgICBhdXRv
JiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTMyLDEyICs5MzIsMTIgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVuc2lnbgogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExVbnNpZ25lZFNob3J0Pj4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnNpZ25lZFNob3J0TnVsbGFibGVB
dHRyKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRVbnNp
Z25lZFNob3J0TnVsbGFibGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRfdW5zaWduZWRTaG9ydE51bGxhYmxlQXR0ciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01K
SVQ+OjpnZXQ8anNUZXN0RE9NSklUVW5zaWduZWRTaG9ydE51bGxhYmxlQXR0ckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVuc2lnbmVkU2hvcnROdWxsYWJsZUF0dHIi
KTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01K
SVRfdW5zaWduZWRTaG9ydE51bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgInVuc2lnbmVkU2hvcnROdWxsYWJsZUF0dHIiKTsKIH0KIAotc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVExvbmdOdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCYgdGhpc09iamVjdCkKK3N0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRfbG9uZ051bGxhYmxlQXR0ckdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklUJiB0aGlzT2Jq
ZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05NDUs
MTIgKzk0NSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUTG9uZ051CiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETExv
bmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmxvbmdOdWxsYWJsZUF0
dHIoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVExvbmdO
dWxsYWJsZUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzVGVzdERPTUpJVF9sb25nTnVsbGFibGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
IHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01K
SVRMb25nTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAibG9uZ051bGxhYmxlQXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9N
SklUPjo6Z2V0PGpzVGVzdERPTUpJVF9sb25nTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibG9uZ051bGxhYmxlQXR0ciIpOwogfQogCi1zdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUVW5zaWduZWRMb25nTnVsbGFibGVBdHRyR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RET01KSVQmIHRoaXNP
YmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUX3Vuc2lnbmVkTG9uZ051
bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNU
ZXN0RE9NSklUJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC05NTgsMTIgKzk1OCwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0RE9NSklUVW5zaWduCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETE51bGxhYmxlPElETFVuc2lnbmVkTG9uZz4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIGltcGwudW5zaWduZWRMb25nTnVsbGFibGVBdHRyKCkpKSk7CiB9CiAKLUpTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdOdWxsYWJsZUF0dHIsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJ
VF91bnNpZ25lZExvbmdOdWxsYWJsZUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVFVuc2ln
bmVkTG9uZ051bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInVuc2lnbmVkTG9uZ051bGxhYmxlQXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVF91bnNpZ25lZExvbmdOdWxsYWJsZUF0dHJH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnNpZ25lZExvbmdOdWxs
YWJsZUF0dHIiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVExvbmdM
b25nTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RET01KSVQmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
RE9NSklUX2xvbmdMb25nTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RET01KSVQmIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0g
PSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTk3MSwxMiArOTcxLDEyIEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRMb25nTG8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMTG9uZ0xvbmc+PihsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmxvbmdMb25nTnVsbGFibGVBdHRyKCkpKSk7CiB9CiAK
LUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRMb25nTG9uZ051bGxhYmxlQXR0
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0
RE9NSklUX2xvbmdMb25nTnVsbGFibGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRMb25n
TG9uZ051bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ImxvbmdMb25nTnVsbGFibGVBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RE
T01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUX2xvbmdMb25nTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibG9uZ0xvbmdOdWxsYWJsZUF0dHIiKTsKIH0K
IAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdOdWxs
YWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVz
dERPTUpJVCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRf
dW5zaWduZWRMb25nTG9uZ051bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklUJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZt
ID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05ODQsMTIgKzk4NCwxMiBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUVW5zaWduCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETFVuc2lnbmVkTG9uZ0xvbmc+PihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVuc2lnbmVkTG9uZ0xvbmdOdWxsYWJs
ZUF0dHIoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVFVu
c2lnbmVkTG9uZ0xvbmdOdWxsYWJsZUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVF91bnNpZ25lZExvbmdMb25nTnVsbGFibGVB
dHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdMb25nTnVsbGFibGVBdHRy
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidW5zaWduZWRMb25nTG9u
Z051bGxhYmxlQXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6
Z2V0PGpzVGVzdERPTUpJVF91bnNpZ25lZExvbmdMb25nTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidW5zaWduZWRMb25nTG9uZ051bGxhYmxlQXR0
ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklURmxvYXROdWxsYWJs
ZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERP
TUpJVCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRfZmxv
YXROdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTVGVzdERPTUpJVCYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0o
JmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtOTk3LDEyICs5OTcsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdERPTUpJVEZsb2F0TgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExOdWxsYWJsZTxJRExGbG9hdD4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGltcGwuZmxvYXROdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdERPTUpJVEZsb2F0TnVsbGFibGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRfZmxvYXROdWxsYWJsZUF0
dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVEZsb2F0TnVsbGFibGVBdHRyR2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZmxvYXROdWxsYWJsZUF0dHIiKTsKKyAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRfZmxvYXRO
dWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJmbG9h
dE51bGxhYmxlQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklU
VW5yZXN0cmljdGVkRmxvYXROdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RET01KSVRfdW5yZXN0cmljdGVkRmxvYXROdWxsYWJsZUF0dHJHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCYgdGhpc09i
amVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTAx
MCwxMiArMTAxMCwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUVW5yZXN0
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElE
TFVucmVzdHJpY3RlZEZsb2F0Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1w
bC51bnJlc3RyaWN0ZWRGbG9hdE51bGxhYmxlQXR0cigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0RE9NSklUVW5yZXN0cmljdGVkRmxvYXROdWxsYWJsZUF0dHIsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJ
VF91bnJlc3RyaWN0ZWRGbG9hdE51bGxhYmxlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7
Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklU
VW5yZXN0cmljdGVkRmxvYXROdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJ1bnJlc3RyaWN0ZWRGbG9hdE51bGxhYmxlQXR0ciIpOworICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVF91bnJlc3RyaWN0
ZWRGbG9hdE51bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInVucmVzdHJpY3RlZEZsb2F0TnVsbGFibGVBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RET01KSVREb3VibGVOdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCYgdGhpc09iamVjdCkKK3N0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRfZG91YmxlTnVsbGFibGVBdHRyR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RET01KSVQmIHRoaXNPYmpl
Y3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEwMjMs
MTIgKzEwMjMsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVERvdWJsZQog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExE
b3VibGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmRvdWJsZU51bGxh
YmxlQXR0cigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklU
RG91YmxlTnVsbGFibGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RET01KSVRfZG91YmxlTnVsbGFibGVBdHRyLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxq
c1Rlc3RET01KSVREb3VibGVOdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJkb3VibGVOdWxsYWJsZUF0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRfZG91YmxlTnVsbGFibGVBdHRyR2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZG91YmxlTnVsbGFibGVBdHRy
Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWRE
b3VibGVOdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTVGVzdERPTUpJVCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RET01KSVRfdW5yZXN0cmljdGVkRG91YmxlTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RET01KSVQmIHRoaXNPYmplY3QpCiB7CiAg
ICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEwMzYsMTIgKzEwMzYs
MTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVucmVzdAogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExVbnJlc3RyaWN0
ZWREb3VibGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVucmVzdHJp
Y3RlZERvdWJsZU51bGxhYmxlQXR0cigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91YmxlTnVsbGFibGVBdHRyLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRfdW5yZXN0
cmljdGVkRG91YmxlTnVsbGFibGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRVbnJlc3Ry
aWN0ZWREb3VibGVOdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJ1bnJlc3RyaWN0ZWREb3VibGVOdWxsYWJsZUF0dHIiKTsKKyAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRfdW5yZXN0cmljdGVkRG91
YmxlTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
dW5yZXN0cmljdGVkRG91YmxlTnVsbGFibGVBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RET01KSVREb21TdHJpbmdOdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCYgdGhpc09iamVjdCkKK3N0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRfZG9tU3RyaW5nTnVsbGFibGVBdHRyR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RET01KSVQmIHRoaXNP
YmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEw
NDksMTIgKzEwNDksMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVERvbVN0
cgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJ
RExET01TdHJpbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmRvbVN0
cmluZ051bGxhYmxlQXR0cigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0RE9NSklURG9tU3RyaW5nTnVsbGFibGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRfZG9tU3RyaW5nTnVsbGFibGVBdHRy
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dERPTUpJVD46OmdldDxqc1Rlc3RET01KSVREb21TdHJpbmdOdWxsYWJsZUF0dHJHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJkb21TdHJpbmdOdWxsYWJsZUF0dHIiKTsK
KyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRf
ZG9tU3RyaW5nTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiZG9tU3RyaW5nTnVsbGFibGVBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RET01KSVRCeXRlU3RyaW5nTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RET01KSVQmIHRoaXNPYmplY3QpCitzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUX2J5dGVTdHJpbmdOdWxsYWJsZUF0dHJHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCYgdGhpc09i
amVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTA2
MiwxMiArMTA2MiwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUQnl0ZVN0
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElE
TEJ5dGVTdHJpbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmJ5dGVT
dHJpbmdOdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdERPTUpJVEJ5dGVTdHJpbmdOdWxsYWJsZUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERPTUpJVF9ieXRlU3RyaW5nTnVsbGFibGVB
dHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRCeXRlU3RyaW5nTnVsbGFibGVBdHRyR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYnl0ZVN0cmluZ051bGxhYmxlQXR0
ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERP
TUpJVF9ieXRlU3RyaW5nTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiYnl0ZVN0cmluZ051bGxhYmxlQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0RE9NSklUVXN2U3RyaW5nTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RET01KSVQmIHRoaXNPYmplY3QpCitz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUX3VzdlN0cmluZ051bGxhYmxlQXR0ckdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklUJiB0
aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0xMDc1LDEyICsxMDc1LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRV
c3ZTdHIKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFi
bGU8SURMVVNWU3RyaW5nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51
c3ZTdHJpbmdOdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdERPTUpJVFVzdlN0cmluZ051bGxhYmxlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RE9NSklUX3VzdlN0cmluZ051bGxhYmxl
QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUVXN2U3RyaW5nTnVsbGFibGVBdHRyR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidXN2U3RyaW5nTnVsbGFibGVBdHRy
Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9N
SklUX3VzdlN0cmluZ051bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgInVzdlN0cmluZ051bGxhYmxlQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0RE9NSklUTm9kZU51bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RE9NSklUJiB0aGlzT2JqZWN0KQorc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVF9ub2RlTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RET01KSVQmIHRoaXNPYmplY3QpCiB7
CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEwODgsMTIgKzEw
ODgsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVE5vZGVOdQogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExJbnRlcmZh
Y2U8Tm9kZT4+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3Qo
KSwgdGhyb3dTY29wZSwgaW1wbC5ub2RlTnVsbGFibGVBdHRyKCkpKSk7CiB9CiAKLUpTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVROb2RlTnVsbGFibGVBdHRyLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RET01KSVRfbm9kZU51
bGxhYmxlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUTm9kZU51bGxhYmxlQXR0ckdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm5vZGVOdWxsYWJsZUF0dHIiKTsK
KyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRf
bm9kZU51bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
Im5vZGVOdWxsYWJsZUF0dHIiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0QXR0cmlidXRlQm9keShKU0M6OkpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZy
YW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0RE9NSklUPjo6Q2xhc3NQYXJhbWV0ZXIg
Y2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01K
SVRQcm90b3R5cGVGdW5jdGlvbl9nZXRBdHRyaWJ1dGVCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1l
IElETE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQog
ewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTExMDgsMTIgKzEx
MDgsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExOdWxs
YWJsZTxJRExET01TdHJpbmc+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgaW1wbC5nZXRBdHRyaWJ1
dGUoV1RGTW92ZShuYW1lKSkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25fZ2V0QXR0cmlidXRlLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdERPTUpJVD46OmNhbGw8anNUZXN0
RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRBdHRyaWJ1dGVCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgImdldEF0dHJpYnV0ZSIpOworICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0RE9NSklUPjo6Y2FsbDxqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbl9nZXRB
dHRyaWJ1dGVCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImdldEF0dHJp
YnV0ZSIpOwogfQogCi1KU0NfREVGSU5FX0pJVF9PUEVSQVRJT04oanNUZXN0RE9NSklUUHJvdG90
eXBlRnVuY3Rpb25HZXRBdHRyaWJ1dGVXaXRob3V0VHlwZUNoZWNrLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RE9N
SklUKiBjYXN0ZWRUaGlzLCBET01KSVQ6OklETEpTQXJndW1lbnRUeXBlPElETERPTVN0cmluZz4g
ZW5jb2RlZE5hbWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKGpzVGVzdERPTUpJVFByb3Rv
dHlwZUZ1bmN0aW9uX2dldEF0dHJpYnV0ZVdpdGhvdXRUeXBlQ2hlY2ssIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RE
T01KSVQqIGNhc3RlZFRoaXMsIERPTUpJVDo6SURMSlNBcmd1bWVudFR5cGU8SURMRE9NU3RyaW5n
PiBlbmNvZGVkTmFtZSkpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CkBAIC0xMTI5
LDcgKzExMjksNyBAQCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04oanNUZXN0RE9NSklUUHJvCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETE51bGxhYmxlPElETERPTVN0cmluZz4+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLmdldEF0dHJpYnV0ZShXVEZNb3ZlKG5hbWUpKSkp
OwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUUHJv
dG90eXBlRnVuY3Rpb25JdGVtQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248
SlNUZXN0RE9NSklUPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbl9pdGVtQm9k
eShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0RE9NSklUPjo6Q2xhc3NQ
YXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0xMTQ3LDEyICsxMTQ3LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgaW1wbC5p
dGVtKFdURk1vdmUoeCksIFdURk1vdmUoeSkpKSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25JdGVtLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbl9pdGVtLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
LSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdERPTUpJVD46OmNhbGw8anNUZXN0RE9NSklU
UHJvdG90eXBlRnVuY3Rpb25JdGVtQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJpdGVtIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+OjpjYWxs
PGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uX2l0ZW1Cb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIml0ZW0iKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSXRlbVdpdGhvdXRUeXBlQ2hlY2ssIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RET01KSVQqIGNhc3RlZFRoaXMsIERPTUpJVDo6SURMSlNBcmd1bWVudFR5cGU8SURM
VW5zaWduZWRTaG9ydD4gZW5jb2RlZFgsIERPTUpJVDo6SURMSlNBcmd1bWVudFR5cGU8SURMVW5z
aWduZWRTaG9ydD4gZW5jb2RlZFkpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKGpzVGVzdERP
TUpJVFByb3RvdHlwZUZ1bmN0aW9uX2l0ZW1XaXRob3V0VHlwZUNoZWNrLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0
RE9NSklUKiBjYXN0ZWRUaGlzLCBET01KSVQ6OklETEpTQXJndW1lbnRUeXBlPElETFVuc2lnbmVk
U2hvcnQ+IGVuY29kZWRYLCBET01KSVQ6OklETEpTQXJndW1lbnRUeXBlPElETFVuc2lnbmVkU2hv
cnQ+IGVuY29kZWRZKSkKIHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKQEAgLTExNzAs
NyArMTE3MCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihqc1Rlc3RET01KSVRQcm8KICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgaW1wbC5pdGVtKFdURk1vdmUoeCksIFdURk1vdmUoeSkpKSk7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlv
bkhhc0F0dHJpYnV0ZUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVz
dERPTUpJVD46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25faGFzQXR0cmlidXRl
Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxG
cmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0RE9NSklUPjo6Q2xh
c3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0xMTgwLDEyICsxMTgwLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKHRvSlM8SURMQm9vbGVhbj4oaW1wbC5oYXNBdHRyaWJ1dGUoKSkpKTsKIH0K
IAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9u
SGFzQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RET01KSVRQ
cm90b3R5cGVGdW5jdGlvbl9oYXNBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0RE9NSklUPjo6Y2FsbDxqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkhh
c0F0dHJpYnV0ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaGFzQXR0
cmlidXRlIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+OjpjYWxsPGpz
VGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uX2hhc0F0dHJpYnV0ZUJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaGFzQXR0cmlidXRlIik7CiB9CiAKLUpTQ19ERUZJTkVf
SklUX09QRVJBVElPTihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkhhc0F0dHJpYnV0ZVdp
dGhvdXRUeXBlQ2hlY2ssIEpTQzo6RW5jb2RlZEpTVmFsdWUsIChKU0M6OkpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RET01KSVQqIGNhc3RlZFRoaXMpKQorSlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uX2hhc0F0dHJp
YnV0ZVdpdGhvdXRUeXBlQ2hlY2ssIEpTQzo6RW5jb2RlZEpTVmFsdWUsIChKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RET01KSVQqIGNhc3RlZFRoaXMpKQog
ewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBWTSYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwpAQCAtMTE5OSw3ICsxMTk5LDcgQEAgSlND
X0RFRklORV9KSVRfT1BFUkFUSU9OKGpzVGVzdERPTUpJVFBybwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUodG9KUzxJRExCb29sZWFuPihpbXBsLmhhc0F0dHJpYnV0ZSgpKSk7CiB9CiAKLXN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5j
dGlvbkdldEVsZW1lbnRCeUlkQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248
SlNUZXN0RE9NSklUPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbl9nZXRFbGVt
ZW50QnlJZEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlND
OjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdERPTUpJ
VD46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMTIxNCwxMiArMTIxNCwxMiBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEludGVyZmFjZTxFbGVtZW50Pj4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC5nZXRFbGVtZW50
QnlJZChXVEZNb3ZlKGVsZW1lbnRJZCkpKSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZCwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25fZ2V0RWxl
bWVudEJ5SWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0RE9NSklUPjo6
Y2FsbDxqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRCeUlkQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJnZXRFbGVtZW50QnlJZCIpOworICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0RE9NSklUPjo6Y2FsbDxqc1Rlc3RET01KSVRQcm90b3R5
cGVGdW5jdGlvbl9nZXRFbGVtZW50QnlJZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAiZ2V0RWxlbWVudEJ5SWQiKTsKIH0KIAotSlNDX0RFRklORV9KSVRfT1BFUkFUSU9O
KGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5SWRXaXRob3V0VHlwZUNo
ZWNrLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0RE9NSklUKiBjYXN0ZWRUaGlzLCBET01KSVQ6OklETEpTQXJndW1l
bnRUeXBlPElETFJlcXVpcmVzRXhpc3RpbmdBdG9tU3RyaW5nQWRhcHRvcjxJRExET01TdHJpbmc+
PiBlbmNvZGVkRWxlbWVudElkKSkKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihqc1Rlc3RET01K
SVRQcm90b3R5cGVGdW5jdGlvbl9nZXRFbGVtZW50QnlJZFdpdGhvdXRUeXBlQ2hlY2ssIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RET01KSVQqIGNhc3RlZFRoaXMsIERPTUpJVDo6SURMSlNBcmd1bWVudFR5cGU8SURM
UmVxdWlyZXNFeGlzdGluZ0F0b21TdHJpbmdBZGFwdG9yPElETERPTVN0cmluZz4+IGVuY29kZWRF
bGVtZW50SWQpKQogewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwpAQCAtMTIzNSw3ICsx
MjM1LDcgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKGpzVGVzdERPTUpJVFBybwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8RWxlbWVudD4+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIGltcGwuZ2V0RWxlbWVu
dEJ5SWQoV1RGTW92ZShlbGVtZW50SWQpKSkpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50c0J5TmFt
ZUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdERPTUpJVD46OkNs
YXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25fZ2V0RWxlbWVudHNCeU5hbWVCb2R5KEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBj
YWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+OjpDbGFzc1BhcmFt
ZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTEyNTAsMTIgKzEyNTAsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjpl
bmNvZGUodG9KUzxJRExJbnRlcmZhY2U8Tm9kZUxpc3Q+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBpbXBsLmdldEVsZW1lbnRzQnlOYW1lKFdURk1v
dmUoZWxlbWVudE5hbWUpKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudHNCeU5hbWUsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uX2dldEVsZW1lbnRz
QnlOYW1lLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdERPTUpJVD46OmNh
bGw8anNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50c0J5TmFtZUJvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZ2V0RWxlbWVudHNCeU5hbWUiKTsKKyAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdERPTUpJVD46OmNhbGw8anNUZXN0RE9NSklUUHJv
dG90eXBlRnVuY3Rpb25fZ2V0RWxlbWVudHNCeU5hbWVCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgImdldEVsZW1lbnRzQnlOYW1lIik7CiB9CiAKLUpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRzQnlOYW1l
V2l0aG91dFR5cGVDaGVjaywgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERPTUpJVCogY2FzdGVkVGhpcywgRE9NSklU
OjpJRExKU0FyZ3VtZW50VHlwZTxJRExBdG9tU3RyaW5nQWRhcHRvcjxJRExET01TdHJpbmc+PiBl
bmNvZGVkRWxlbWVudE5hbWUpKQorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKGpzVGVzdERPTUpJ
VFByb3RvdHlwZUZ1bmN0aW9uX2dldEVsZW1lbnRzQnlOYW1lV2l0aG91dFR5cGVDaGVjaywgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTVGVzdERPTUpJVCogY2FzdGVkVGhpcywgRE9NSklUOjpJRExKU0FyZ3VtZW50VHlwZTxJ
RExBdG9tU3RyaW5nQWRhcHRvcjxJRExET01TdHJpbmc+PiBlbmNvZGVkRWxlbWVudE5hbWUpKQog
ewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBWTSYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT04uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0
VG9KU09OLmNwcAkocmV2aXNpb24gMjY4NTQ3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT04uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03MCw0NSArNzAsNDUgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAK
LUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0RGVmYXVsdFRvSlNPTlByb3RvdHlwZUZ1
bmN0aW9uVG9KU09OKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0RGVmYXVsdFRv
SlNPTlByb3RvdHlwZUZ1bmN0aW9uX3RvSlNPTik7CiAKIC8vIEF0dHJpYnV0ZXMKIAogSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IpOwogSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3Ip
OwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OTG9uZ0F0dHJp
YnV0ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05FbmFi
bGVkQnlTZXR0aW5nc0F0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dERlZmF1bHRUb0pTT05fbG9uZ0F0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdERlZmF1bHRUb0pTT05fZW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGUpOwogI2lmIEVO
QUJMRShURVNUX0NPTkRJVElPTkFMKQotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RE
ZWZhdWx0VG9KU09ORW5hYmxlZEJ5Q29uZGl0aW9uYWxBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OX2VuYWJsZWRCeUNvbmRpdGlvbmFsQXR0
cmlidXRlKTsKICNlbmRpZgotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0
VG9KU09ORXZlbnRIYW5kbGVyQXR0cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxlckF0dHJpYnV0ZSk7Ci1KU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05GaXJzdFN0cmluZ0F0dHJpYnV0ZSk7
Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05GaXJzdFN0
cmluZ0F0dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRU
b0pTT05TZWNvbmRMb25nQXR0cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0RGVmYXVsdFRvSlNPTlNlY29uZExvbmdBdHRyaWJ1dGUpOwotSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OVGhpcmRVbkpTT05hYmxlQXR0cmlidXRlKTsK
LUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRoaXJkVW5K
U09OYWJsZUF0dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1
bHRUb0pTT05Gb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUpOwotSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVkRG91
YmxlQXR0cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRv
SlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZSk7Ci1KU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05TaXh0aFR5cGVkZWZBdHRy
aWJ1dGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09O
U2l4dGhUeXBlZGVmQXR0cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
RGVmYXVsdFRvSlNPTlNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUpOwotSlNDX0RF
Q0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2V2ZW50aERpcmVjdGx5
VG9KU09OYWJsZUF0dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERl
ZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGUp
OwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OTmludGhPcHRp
b25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05OaW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxl
QXR0cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNP
TlRlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3REZWZhdWx0VG9KU09OVGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZSk7Ci1KU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05FbGV2ZW50aFNlcXVlbmNlQXR0
cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNP
TkVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3REZWZhdWx0VG9KU09OVHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlKTsKLUpT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRl
cmZhY2VTZXF1ZW5jZUF0dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dERlZmF1bHRUb0pTT05UaGlydGVlbnRoUmVjb3JkQXR0cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1
dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OX2V2ZW50
SGFuZGxlckF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERl
ZmF1bHRUb0pTT05fZXZlbnRIYW5kbGVyQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTl9maXJzdFN0cmluZ0F0dHJpYnV0ZSk7CitKU0NfREVD
TEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05fZmlyc3RTdHJpbmdBdHRy
aWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OX3Nl
Y29uZExvbmdBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RE
ZWZhdWx0VG9KU09OX3NlY29uZExvbmdBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3REZWZhdWx0VG9KU09OX3RoaXJkVW5KU09OYWJsZUF0dHJpYnV0ZSk7CitKU0Nf
REVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05fdGhpcmRVbkpTT05h
YmxlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRv
SlNPTl9mb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OX2ZvdXJ0aFVucmVzdHJpY3RlZERvdWJs
ZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pT
T05fZmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdERlZmF1bHRUb0pTT05fZmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZSk7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05fc2l4dGhUeXBlZGVmQXR0
cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNP
Tl9zaXh0aFR5cGVkZWZBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3REZWZhdWx0VG9KU09OX3NldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OX3NldmVudGhEaXJl
Y3RseVRvSlNPTmFibGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3REZWZhdWx0VG9KU09OX2VpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OX2VpZ2h0aEluZGlyZWN0bHlBdHRy
aWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OX25p
bnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OX25pbnRoT3B0aW9uYWxEaXJlY3RseVRv
SlNPTmFibGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZh
dWx0VG9KU09OX3RlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OX3RlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGUp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OX2VsZXZlbnRo
U2VxdWVuY2VBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RE
ZWZhdWx0VG9KU09OX2VsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OX3R3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0
dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pT
T05fdHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTl90aGlydGVlbnRoUmVjb3JkQXR0cmlidXRlKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl90aGlydGVl
bnRoUmVjb3JkQXR0cmlidXRlKTsKIAogY2xhc3MgSlNUZXN0RGVmYXVsdFRvSlNPTlByb3RvdHlw
ZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTY0
LDI4ICsxNjQsMjggQEAgdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RGVmYXVsdAog
c3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdERlZmF1bHRUb0pTT05Qcm90b3R5cGVU
YWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVm
YXVsdFRvSlNPTkNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKSB9
IH0sCi0gICAgeyAibG9uZ0F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3REZWZhdWx0VG9KU09OTG9uZ0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKLSAgICB7ICJlbmFibGVk
QnlTZXR0aW5nc0F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vz
c29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3REZWZhdWx0VG9KU09ORW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAi
bG9uZ0F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWZh
dWx0VG9KU09OX2xvbmdBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiZW5hYmxlZEJ5U2V0dGluZ3NB
dHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRv
SlNPTl9lbmFibGVkQnlTZXR0aW5nc0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKICNpZiBFTkFCTEUoVEVTVF9D
T05ESVRJT05BTCkKLSAgICB7ICJlbmFibGVkQnlDb25kaXRpb25hbEF0dHJpYnV0ZSIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWZhdWx0VG9KU09ORW5hYmxlZEJ5Q29u
ZGl0aW9uYWxBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiZW5hYmxlZEJ5Q29uZGl0aW9uYWxBdHRy
aWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNP
Tl9lbmFibGVkQnlDb25kaXRpb25hbEF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKICNlbHNlCiAgICAgeyAwLCAw
LCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgotICAgIHsgImV2ZW50SGFuZGxlckF0
dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpD
dXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxlckF0dHJpYnV0ZSksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdERl
ZmF1bHRUb0pTT05FdmVudEhhbmRsZXJBdHRyaWJ1dGUpIH0gfSwKLSAgICB7ICJmaXJzdFN0cmlu
Z0F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTkZpcnN0U3RyaW5nQXR0cmlidXRlKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0
RGVmYXVsdFRvSlNPTkZpcnN0U3RyaW5nQXR0cmlidXRlKSB9IH0sCi0gICAgeyAic2Vjb25kTG9u
Z0F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTlNlY29uZExvbmdBdHRyaWJ1dGUpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RE
ZWZhdWx0VG9KU09OU2Vjb25kTG9uZ0F0dHJpYnV0ZSkgfSB9LAotICAgIHsgInRoaXJkVW5KU09O
YWJsZUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0
ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTlRoaXJkVW5KU09OYWJsZUF0dHJpYnV0ZSks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUpIH0gfSwKLSAgICB7
ICJmb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdERlZmF1bHRUb0pTT05Gb3Vy
dGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3REZWZhdWx0VG9KU09ORm91cnRo
VW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRlKSB9IH0sCi0gICAgeyAiZmlmdGhMb25nQ2xhbXBl
ZEF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRK
U1Rlc3REZWZhdWx0VG9KU09ORmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZSkgfSB9LAotICAgIHsg
InNpeHRoVHlwZWRlZkF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRP
TUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTlNpeHRoVHlwZWRlZkF0dHJp
YnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KHNldEpTVGVzdERlZmF1bHRUb0pTT05TaXh0aFR5cGVkZWZBdHRyaWJ1dGUpIH0gfSwKLSAg
ICB7ICJzZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWZhdWx0VG9KU09O
U2V2ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdERlZmF1bHRUb0pTT05T
ZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKSB9IH0sCi0gICAgeyAiZWlnaHRoSW5k
aXJlY3RseUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJp
YnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTkVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1
dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PihzZXRKU1Rlc3REZWZhdWx0VG9KU09ORWlnaHRoSW5kaXJlY3RseUF0dHJpYnV0ZSkgfSB9LAot
ICAgIHsgIm5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdERlZmF1
bHRUb0pTT05OaW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0
RGVmYXVsdFRvSlNPTk5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUpIH0g
fSwKLSAgICB7ICJ0ZW50aEZyb3plbkFycmF5QXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWZhdWx0VG9KU09OVGVu
dGhGcm96ZW5BcnJheUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdERlZmF1bHRUb0pTT05UZW50aEZyb3plbkFy
cmF5QXR0cmlidXRlKSB9IH0sCi0gICAgeyAiZWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZSIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
ciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
RGVmYXVsdFRvSlNPTkVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3REZWZhdWx0VG9K
U09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZSkgfSB9LAotICAgIHsgInR3ZWxmdGhJbnRlcmZh
Y2VTZXF1ZW5jZUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0
dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VTZXF1
ZW5jZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KHNldEpTVGVzdERlZmF1bHRUb0pTT05Ud2VsZnRoSW50ZXJmYWNlU2VxdWVu
Y2VBdHRyaWJ1dGUpIH0gfSwKLSAgICB7ICJ0aGlydGVlbnRoUmVjb3JkQXR0cmlidXRlIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29y
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RE
ZWZhdWx0VG9KU09OVGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdERlZmF1bHRUb0pT
T05UaGlydGVlbnRoUmVjb3JkQXR0cmlidXRlKSB9IH0sCi0gICAgeyAidG9KU09OIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RE
ZWZhdWx0VG9KU09OUHJvdG90eXBlRnVuY3Rpb25Ub0pTT04pLCAoaW50cHRyX3QpICgwKSB9IH0s
CisgICAgeyAiZXZlbnRIYW5kbGVyQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWZhdWx0VG9KU09OX2V2ZW50SGFu
ZGxlckF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KHNldEpTVGVzdERlZmF1bHRUb0pTT05fZXZlbnRIYW5kbGVyQXR0cmlidXRl
KSB9IH0sCisgICAgeyAiZmlyc3RTdHJpbmdBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdERlZmF1bHRUb0pTT05fZmly
c3RTdHJpbmdBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3REZWZhdWx0VG9KU09OX2ZpcnN0U3RyaW5nQXR0cmli
dXRlKSB9IH0sCisgICAgeyAic2Vjb25kTG9uZ0F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTl9z
ZWNvbmRMb25nQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9zZWNvbmRMb25nQXR0cmli
dXRlKSB9IH0sCisgICAgeyAidGhpcmRVbkpTT05hYmxlQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWZhdWx0VG9K
U09OX3RoaXJkVW5KU09OYWJsZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdERlZmF1bHRUb0pTT05fdGhpcmRV
bkpTT05hYmxlQXR0cmlidXRlKSB9IH0sCisgICAgeyAiZm91cnRoVW5yZXN0cmljdGVkRG91Ymxl
QXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3REZWZhdWx0VG9KU09OX2ZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJp
YnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KHNldEpTVGVzdERlZmF1bHRUb0pTT05fZm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmli
dXRlKSB9IH0sCisgICAgeyAiZmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRv
SlNPTl9maWZ0aExvbmdDbGFtcGVkQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9maWZ0
aExvbmdDbGFtcGVkQXR0cmlidXRlKSB9IH0sCisgICAgeyAic2l4dGhUeXBlZGVmQXR0cmlidXRl
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3REZWZhdWx0VG9KU09OX3NpeHRoVHlwZWRlZkF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdERlZmF1bHRU
b0pTT05fc2l4dGhUeXBlZGVmQXR0cmlidXRlKSB9IH0sCisgICAgeyAic2V2ZW50aERpcmVjdGx5
VG9KU09OYWJsZUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0
dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTl9zZXZlbnRoRGlyZWN0bHlUb0pT
T05hYmxlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9zZXZlbnRoRGlyZWN0bHlUb0pT
T05hYmxlQXR0cmlidXRlKSB9IH0sCisgICAgeyAiZWlnaHRoSW5kaXJlY3RseUF0dHJpYnV0ZSIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nl
c3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0RGVmYXVsdFRvSlNPTl9laWdodGhJbmRpcmVjdGx5QXR0cmlidXRlKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0RGVmYXVs
dFRvSlNPTl9laWdodGhJbmRpcmVjdGx5QXR0cmlidXRlKSB9IH0sCisgICAgeyAibmludGhPcHRp
b25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTl9uaW50aE9w
dGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9u
aW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKSB9IH0sCisgICAgeyAidGVu
dGhGcm96ZW5BcnJheUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRP
TUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTl90ZW50aEZyb3plbkFycmF5
QXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl90ZW50aEZyb3plbkFycmF5QXR0cmlidXRl
KSB9IH0sCisgICAgeyAiZWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNP
Tl9lbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9lbGV2ZW50
aFNlcXVlbmNlQXR0cmlidXRlKSB9IH0sCisgICAgeyAidHdlbGZ0aEludGVyZmFjZVNlcXVlbmNl
QXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3REZWZhdWx0VG9KU09OX3R3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJp
YnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KHNldEpTVGVzdERlZmF1bHRUb0pTT05fdHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmli
dXRlKSB9IH0sCisgICAgeyAidGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRv
SlNPTl90aGlydGVlbnRoUmVjb3JkQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl90aGly
dGVlbnRoUmVjb3JkQXR0cmlidXRlKSB9IH0sCisgICAgeyAidG9KU09OIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3REZWZhdWx0
VG9KU09OUHJvdG90eXBlRnVuY3Rpb25fdG9KU09OKSwgKGludHB0cl90KSAoMCkgfSB9LAogfTsK
IAogY29uc3QgQ2xhc3NJbmZvIEpTVGVzdERlZmF1bHRUb0pTT05Qcm90b3R5cGU6OnNfaW5mbyA9
IHsgIlRlc3REZWZhdWx0VG9KU09OIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3REZWZhdWx0VG9KU09OUHJvdG90eXBlKSB9OwpAQCAt
Mjg0LDcgKzI4NCw3IEBAIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWwK
ICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNv
bnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OTG9uZ0F0dHJpYnV0ZUdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RGVmYXVsdFRvSlNPTiYgdGhp
c09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OX2xvbmdB
dHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVz
dERlZmF1bHRUb0pTT04mIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTI5MiwxMiArMjkyLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3REZWZhdWx0VG9KU08KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5sb25n
QXR0cmlidXRlKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZh
dWx0VG9KU09OTG9uZ0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTl9sb25nQXR0cmlidXRlLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRU
b0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkxvbmdBdHRyaWJ1dGVHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJsb25nQXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZh
dWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05fbG9uZ0F0dHJpYnV0ZUdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgImxvbmdBdHRyaWJ1dGUiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdERlZmF1bHRUb0pTT05FbmFibGVkQnlTZXR0aW5nc0F0dHJpYnV0ZUdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RGVmYXVsdFRvSlNPTiYgdGhpc09i
amVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OX2VuYWJsZWRC
eVNldHRpbmdzQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1Rlc3REZWZhdWx0VG9KU09OJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0g
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMDUsMTMgKzMwNSwxMyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETFVuc2lnbmVkU2hvcnQ+KGxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIGltcGwuZW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGUoKSkpKTsKIH0KIAotSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05FbmFibGVkQnlTZXR0aW5n
c0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNUZXN0RGVmYXVsdFRvSlNPTl9lbmFibGVkQnlTZXR0aW5nc0F0dHJpYnV0ZSwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0
VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05FbmFibGVkQnlTZXR0aW5nc0F0dHJpYnV0
ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgImVuYWJsZWRCeVNldHRpbmdzQXR0cmlidXRlIik7CisgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRU
b0pTT05fZW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJlbmFibGVk
QnlTZXR0aW5nc0F0dHJpYnV0ZSIpOwogfQogCiAjaWYgRU5BQkxFKFRFU1RfQ09ORElUSU9OQUwp
Ci1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRCeUNvbmRp
dGlvbmFsQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3REZWZhdWx0VG9KU09OJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdERlZmF1bHRUb0pTT05fZW5hYmxlZEJ5Q29uZGl0aW9uYWxBdHRyaWJ1dGVHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT04m
IHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTMxOSwyNSArMzE5LDI1IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0
VG9KU08KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRW51bWVy
YXRpb248VGVzdERlZmF1bHRUb0pTT05FbnVtPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgaW1wbC5lbmFibGVkQnlDb25kaXRpb25hbEF0dHJpYnV0ZSgpKSkpOwogfQogCi1KU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRCeUNvbmRpdGlv
bmFsQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3REZWZhdWx0VG9KU09OX2VuYWJsZWRCeUNvbmRpdGlvbmFsQXR0cmlidXRlLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERl
ZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRCeUNvbmRpdGlvbmFs
QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZW5hYmxlZEJ5Q29uZGl0aW9uYWxBdHRyaWJ1dGUi
KTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNU
ZXN0RGVmYXVsdFRvSlNPTl9lbmFibGVkQnlDb25kaXRpb25hbEF0dHJpYnV0ZUdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgImVuYWJsZWRCeUNvbmRpdGlvbmFsQXR0cmlidXRlIik7CiB9CiAKICNlbmRpZgogCi1z
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxlckF0dHJp
YnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RGVm
YXVsdFRvSlNPTiYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZh
dWx0VG9KU09OX2V2ZW50SGFuZGxlckF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RGVmYXVsdFRvSlNPTiYgdGhpc09iamVjdCkKIHsKICAg
ICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIGV2ZW50SGFu
ZGxlckF0dHJpYnV0ZSh0aGlzT2JqZWN0LndyYXBwZWQoKSwgZXZlbnROYW1lcygpLmVudEhhbmRs
ZXJBdHRyaWJ1dGVFdmVudCwgd29ybGRGb3JET01PYmplY3QodGhpc09iamVjdCkpOwogfQogCi1K
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxlckF0
dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0RGVmYXVsdFRvSlNPTl9ldmVudEhhbmRsZXJBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46
OmdldDxqc1Rlc3REZWZhdWx0VG9KU09ORXZlbnRIYW5kbGVyQXR0cmlidXRlR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiZXZlbnRIYW5kbGVyQXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05fZXZlbnRIYW5kbGVy
QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZXZlbnRIYW5kbGVyQXR0cmlidXRlIik7CiB9CiAK
LXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORXZlbnRIYW5kbGVyQXR0
cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RE
ZWZhdWx0VG9KU09OJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05fZXZlbnRIYW5kbGVyQXR0cmlidXRlU2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3REZWZhdWx0VG9KU09OJiB0
aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgc2V0RXZlbnRIYW5kbGVyQXR0cmlidXRlKGxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3QsIHRoaXNPYmplY3Qud3JhcHBlZCgpLCBldmVudE5h
bWVzKCkuZW50SGFuZGxlckF0dHJpYnV0ZUV2ZW50LCB2YWx1ZSk7CkBAIC0zNDcsMTIgKzM0Nywx
MiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9K
U09ORXZlbnRIYW5kbGVyQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OX2V2
ZW50SGFuZGxlckF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6c2V0PHNl
dEpTVGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRsZXJBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImV2ZW50SGFuZGxlckF0dHJp
YnV0ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OnNl
dDxzZXRKU1Rlc3REZWZhdWx0VG9KU09OX2V2ZW50SGFuZGxlckF0dHJpYnV0ZVNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZXZlbnRIYW5kbGVy
QXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9K
U09ORmlyc3RTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT04mIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTl9maXJzdFN0cmluZ0F0dHJpYnV0ZUdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RGVmYXVsdFRvSlNPTiYg
dGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMzYwLDEyICszNjAsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRU
b0pTTwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJp
bmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZmlyc3RTdHJpbmdBdHRy
aWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRU
b0pTT05GaXJzdFN0cmluZ0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTl9maXJzdFN0cmluZ0F0dHJpYnV0
ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05GaXJzdFN0cmluZ0F0dHJp
YnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgImZpcnN0U3RyaW5nQXR0cmlidXRlIik7CisgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pT
T05fZmlyc3RTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJmaXJzdFN0cmluZ0F0dHJp
YnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZp
cnN0U3RyaW5nQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1Rlc3REZWZhdWx0VG9KU09OJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05fZmlyc3RTdHJpbmdBdHRyaWJ1
dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERlZmF1
bHRUb0pTT04mIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM3OCwxMiArMzc4LDEyIEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU08KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlND
X0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05GaXJzdFN0cmluZ0F0
dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9maXJzdFN0cmluZ0F0dHJpYnV0
ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pT
T05GaXJzdFN0cmluZ0F0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAiZmlyc3RTdHJpbmdBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRv
SlNPTl9maXJzdFN0cmluZ0F0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZmlyc3RTdHJpbmdBdHRyaWJ1dGUiKTsKIH0KIAotc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05TZWNvbmRMb25nQXR0cmlidXRl
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3REZWZhdWx0
VG9KU09OJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRU
b0pTT05fc2Vjb25kTG9uZ0F0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0RGVmYXVsdFRvSlNPTiYgdGhpc09iamVjdCkKIHsKICAgICBhdXRv
JiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzkxLDEyICszOTEsMTIgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTTwogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLnNlY29uZExvbmdBdHRyaWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05TZWNvbmRMb25nQXR0cmlidXRlLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0
VG9KU09OX3NlY29uZExvbmdBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZh
dWx0VG9KU09OU2Vjb25kTG9uZ0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNlY29uZExvbmdB
dHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+
OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTl9zZWNvbmRMb25nQXR0cmlidXRlR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAic2Vjb25kTG9uZ0F0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0RGVmYXVsdFRvSlNPTlNlY29uZExvbmdBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT04mIHRoaXNPYmplY3Qs
IEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNP
Tl9zZWNvbmRMb25nQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3REZWZhdWx0VG9KU09OJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQog
ewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00MDksMTIgKzQw
OSwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0
VG9KU09OU2Vjb25kTG9uZ0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9z
ZWNvbmRMb25nQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
IHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0
SlNUZXN0RGVmYXVsdFRvSlNPTlNlY29uZExvbmdBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInNlY29uZExvbmdBdHRyaWJ1dGUi
KTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0
SlNUZXN0RGVmYXVsdFRvSlNPTl9zZWNvbmRMb25nQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzZWNvbmRMb25nQXR0cmlidXRl
Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OVGhpcmRV
bkpTT05hYmxlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1Rlc3REZWZhdWx0VG9KU09OJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdERlZmF1bHRUb0pTT05fdGhpcmRVbkpTT05hYmxlQXR0cmlidXRlR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3REZWZhdWx0VG9KU09OJiB0
aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC00MjIsMTIgKzQyMiwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRv
SlNPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFj
ZTxUZXN0RXhjZXB0aW9uPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwudGhpcmRVbkpTT05hYmxlQXR0cmlidXRlKCkpKSk7
CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OVGhpcmRV
bkpTT05hYmxlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OX3RoaXJkVW5KU09OYWJsZUF0dHJpYnV0ZSwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RE
ZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRy
aWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0aGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUiKTsKKyAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVs
dFRvSlNPTl90aGlyZFVuSlNPTmFibGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0aGlyZFVu
SlNPTmFibGVBdHRyaWJ1dGUiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERl
ZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT04mIHRoaXNPYmplY3QsIEpT
VmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl90
aGlyZFVuSlNPTmFibGVBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT04mIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUp
CiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ0MCwxMiAr
NDQwLDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU08KICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1
bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRU
b0pTT05fdGhpcmRVbkpTT05hYmxlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pT
T04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRoaXJkVW5KU09OYWJsZUF0dHJpYnV0ZVNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidGhp
cmRVbkpTT05hYmxlQXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RE
ZWZhdWx0VG9KU09OPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05fdGhpcmRVbkpTT05hYmxl
QXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJ0aGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUiKTsKIH0KIAotc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Gb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1
dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERlZmF1
bHRUb0pTT04mIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVs
dFRvSlNPTl9mb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT04mIHRoaXNPYmpl
Y3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ1Mywx
MiArNDUzLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU08KICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5yZXN0cmljdGVkRG91
YmxlPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmZvdXJ0aFVucmVzdHJp
Y3RlZERvdWJsZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0RGVmYXVsdFRvSlNPTkZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZSwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVs
dFRvSlNPTl9mb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46
OmdldDxqc1Rlc3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRl
R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAiZm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRlIik7Cisg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERl
ZmF1bHRUb0pTT05fZm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRlR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiZm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVkRG91Ymxl
QXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3REZWZhdWx0VG9KU09OJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05fZm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0
cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RE
ZWZhdWx0VG9KU09OJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZt
ID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00NzEsMTIgKzQ3MSwxMiBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09ORm91cnRoVW5y
ZXN0cmljdGVkRG91YmxlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OX2Zv
dXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9K
U09OPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05Gb3VydGhVbnJlc3RyaWN0ZWREb3VibGVB
dHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgImZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZSIpOworICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9K
U09OX2ZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZm91cnRoVW5yZXN0cmljdGVkRG91
YmxlQXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0
VG9KU09ORmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RGVmYXVsdFRvSlNPTiYgdGhpc09iamVjdCkKK3N0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OX2ZpZnRoTG9uZ0NsYW1wZWRBdHRy
aWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERl
ZmF1bHRUb0pTT04mIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTQ4NCwxMiArNDg0LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3REZWZhdWx0VG9KU08KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMQ2xhbXBBZGFwdG9yPElETExvbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBpbXBsLmZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05GaWZ0aExvbmdDbGFtcGVkQXR0cmli
dXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3REZWZhdWx0VG9KU09OX2ZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46
OmdldDxqc1Rlc3REZWZhdWx0VG9KU09ORmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZUdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgImZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTl9maWZ0
aExvbmdDbGFtcGVkQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZmlmdGhMb25nQ2xhbXBlZEF0
dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNP
TkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT04mIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFs
dWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9maWZ0aExvbmdD
bGFtcGVkQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3REZWZhdWx0VG9KU09OJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAg
IGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01MDIsMTIgKzUwMiwxMiBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09O
RmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9m
aWZ0aExvbmdDbGFtcGVkQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+Ojpz
ZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGVTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImZpZnRoTG9u
Z0NsYW1wZWRBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1
bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9maWZ0aExvbmdDbGFtcGVkQXR0
cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJmaWZ0aExvbmdDbGFtcGVkQXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRlR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3REZWZhdWx0VG9KU09OJiB0aGlz
T2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05fc2l4dGhU
eXBlZGVmQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3REZWZhdWx0VG9KU09OJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01MTUsMTIgKzUxNSwxMiBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETERvdWJsZT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
aW1wbC5zaXh0aFR5cGVkZWZBdHRyaWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05TaXh0aFR5cGVkZWZBdHRyaWJ1dGUsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pT
T05fc2l4dGhUeXBlZGVmQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVs
dFRvSlNPTlNpeHRoVHlwZWRlZkF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNpeHRoVHlwZWRl
ZkF0dHJpYnV0ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNP
Tj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09OX3NpeHRoVHlwZWRlZkF0dHJpYnV0ZUdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgInNpeHRoVHlwZWRlZkF0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNpeHRoVHlwZWRlZkF0dHJpYnV0ZVNldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RGVmYXVsdFRvSlNPTiYgdGhp
c09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZh
dWx0VG9KU09OX3NpeHRoVHlwZWRlZkF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RGVmYXVsdFRvSlNPTiYgdGhpc09iamVjdCwgSlNWYWx1
ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
NTMzLDEyICs1MzMsMTIgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pT
TwogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0RGVmYXVsdFRvSlNPTlNpeHRoVHlwZWRlZkF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVm
YXVsdFRvSlNPTl9zaXh0aFR5cGVkZWZBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRv
SlNPTj46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRlU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzaXh0
aFR5cGVkZWZBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1
bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9zaXh0aFR5cGVkZWZBdHRyaWJ1
dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
InNpeHRoVHlwZWRlZkF0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0RGVmYXVsdFRvSlNPTlNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGVHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT04m
IHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTl9z
ZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3REZWZhdWx0VG9KU09OJiB0aGlzT2JqZWN0KQogewog
ICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01NDYsMTIgKzU0Niwx
MiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRGaW5hbD4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2Jh
bE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRy
aWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRU
b0pTT05TZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OX3NldmVu
dGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewot
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3RE
ZWZhdWx0VG9KU09OU2V2ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZUdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgInNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNP
Tl9zZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2V2
ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1
dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERlZmF1
bHRUb0pTT04mIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9zZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRl
U2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3REZWZhdWx0
VG9KU09OJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01NjQsMTIgKzU2NCwxMiBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2V2ZW50aERpcmVjdGx5
VG9KU09OYWJsZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9zZXZlbnRo
RGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+
OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRy
aWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgInNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNP
Tl9zZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzZXZlbnRoRGlyZWN0bHlUb0pTT05h
YmxlQXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0
VG9KU09ORWlnaHRoSW5kaXJlY3RseUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RGVmYXVsdFRvSlNPTiYgdGhpc09iamVjdCkKK3N0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OX2VpZ2h0aEluZGlyZWN0bHlBdHRy
aWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERl
ZmF1bHRUb0pTT04mIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTU3NywxMiArNTc3LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3REZWZhdWx0VG9KU08KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMSW50ZXJmYWNlPFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZT4+KGxl
eGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3Bl
LCBpbXBsLmVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmlidXRl
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RE
ZWZhdWx0VG9KU09OX2VpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46Omdl
dDxqc1Rlc3REZWZhdWx0VG9KU09ORWlnaHRoSW5kaXJlY3RseUF0dHJpYnV0ZUdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgImVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTl9laWdodGhJ
bmRpcmVjdGx5QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZWlnaHRoSW5kaXJlY3RseUF0dHJp
YnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkVp
Z2h0aEluZGlyZWN0bHlBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT04mIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUp
CitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9laWdodGhJbmRpcmVj
dGx5QXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3REZWZhdWx0VG9KU09OJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1
dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01OTUsMTIgKzU5NSwxMiBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09ORWln
aHRoSW5kaXJlY3RseUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9laWdo
dGhJbmRpcmVjdGx5QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8
c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGVTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImVpZ2h0aEluZGly
ZWN0bHlBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRU
b0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9laWdodGhJbmRpcmVjdGx5QXR0cmli
dXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJlaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3REZWZhdWx0VG9KU09OTmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJp
YnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RGVm
YXVsdFRvSlNPTiYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZh
dWx0VG9KU09OX25pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGVHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT04m
IHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTYwOCwxMiArNjA4LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0
VG9KU08KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFi
bGU8SURMSW50ZXJmYWNlPFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsPj4+KGxleGljYWxH
bG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBs
Lm5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05OaW50aE9wdGlvbmFsRGly
ZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OX25pbnRoT3B0aW9uYWxEaXJlY3Rs
eVRvSlNPTmFibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9K
U09OTmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgIm5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUiKTsKKyAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRv
SlNPTl9uaW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAibmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZSIpOwogfQogCi1z
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTk5pbnRoT3B0aW9uYWxEaXJl
Y3RseVRvSlNPTmFibGVBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT04mIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUp
CitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9uaW50aE9wdGlvbmFs
RGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3REZWZhdWx0VG9KU09OJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZh
bHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02MjYs
MTIgKzYyNiwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RE
ZWZhdWx0VG9KU09OTmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZSwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9uaW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxl
QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVm
YXVsdFRvSlNPTk5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGVTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm5pbnRoT3B0
aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTl9uaW50
aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJuaW50aE9wdGlvbmFsRGlyZWN0bHlU
b0pTT05hYmxlQXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RE
ZWZhdWx0VG9KU09OVGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RGVmYXVsdFRvSlNPTiYgdGhpc09iamVjdCkK
K3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OX3RlbnRoRnJvemVuQXJy
YXlBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VGVzdERlZmF1bHRUb0pTT04mIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTYzOSwxMiArNjM5LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3REZWZhdWx0VG9KU08KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMRnJvemVuQXJyYXk8SURMQm9vbGVhbj4+KGxleGljYWxHbG9iYWxPYmplY3Qs
ICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnRlbnRoRnJvemVu
QXJyYXlBdHRyaWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dERlZmF1bHRUb0pTT05UZW50aEZyb3plbkFycmF5QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OX3RlbnRo
RnJvemVuQXJyYXlBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9K
U09OVGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlbnRoRnJvemVu
QXJyYXlBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRU
b0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTl90ZW50aEZyb3plbkFycmF5QXR0cmlidXRl
R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAidGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZSIpOwogfQogCi1zdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRlbnRoRnJvemVuQXJyYXlBdHRy
aWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERl
ZmF1bHRUb0pTT04mIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl90ZW50aEZyb3plbkFycmF5QXR0cmlidXRlU2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3REZWZhdWx0VG9KU09O
JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC02NTcsMTIgKzY1NywxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0RGVmYXVsdFRvSlNPCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGVudGhGcm96ZW5BcnJheUF0dHJp
YnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTl90ZW50aEZyb3plbkFycmF5QXR0cmli
dXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRv
SlNPTlRlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInRlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGUiKTsK
KyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNU
ZXN0RGVmYXVsdFRvSlNPTl90ZW50aEZyb3plbkFycmF5QXR0cmlidXRlU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ0ZW50aEZyb3plbkFycmF5
QXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9K
U09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNUZXN0RGVmYXVsdFRvSlNPTiYgdGhpc09iamVjdCkKK3N0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OX2VsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1
dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERlZmF1
bHRUb0pTT04mIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTY3MCwxMiArNjcwLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3REZWZhdWx0VG9KU08KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMU2VxdWVuY2U8SURMRE9NU3RyaW5nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuZWxldmVudGhTZXF1ZW5jZUF0dHJp
YnV0ZSgpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRv
SlNPTkVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05fZWxldmVudGhTZXF1ZW5j
ZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05FbGV2ZW50
aFNlcXVlbmNlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZWxldmVudGhTZXF1ZW5jZUF0dHJp
YnV0ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46Omdl
dDxqc1Rlc3REZWZhdWx0VG9KU09OX2VsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGVHZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJlbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZVNldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RGVmYXVsdFRvSlNP
TiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3REZWZhdWx0VG9KU09OX2VsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT04mIHRoaXNPYmpl
Y3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTY4OCwxMiArNjg4LDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RE
ZWZhdWx0VG9KU08KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05FbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3REZWZhdWx0VG9KU09OX2VsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGUsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09ORWxldmVu
dGhTZXF1ZW5jZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAiZWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZSIpOworICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rlc3REZWZhdWx0
VG9KU09OX2VsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGUi
KTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Ud2VsZnRo
SW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT04mIHRoaXNPYmplY3QpCitzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTl90d2VsZnRoSW50ZXJmYWNlU2VxdWVuY2VB
dHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVz
dERlZmF1bHRUb0pTT04mIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTcwMSwxMiArNzAxLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3REZWZhdWx0VG9KU08KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMU2VxdWVuY2U8SURMSW50ZXJmYWNlPFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZp
bmFsPj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0
aHJvd1Njb3BlLCBpbXBsLnR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJpYnV0ZSgpKSkpOwog
fQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJ
bnRlcmZhY2VTZXF1ZW5jZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTl90d2VsZnRoSW50ZXJmYWNlU2Vx
dWVuY2VBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09OVHdl
bGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidHdlbGZ0aElu
dGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05fdHdlbGZ0aEludGVyZmFj
ZVNlcXVlbmNlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidHdlbGZ0aEludGVyZmFjZVNlcXVl
bmNlQXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0
VG9KU09OVHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3REZWZhdWx0VG9KU09OJiB0aGlzT2JqZWN0
LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pT
T05fdHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3REZWZhdWx0VG9KU09OJiB0aGlzT2JqZWN0LCBK
U1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC03MTksMTIgKzcxOSwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVs
dFRvSlNPCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3REZWZhdWx0VG9KU09OVHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OX3R3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJp
YnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6c2V0PHNldEpTVGVzdERlZmF1bHRU
b0pTT05Ud2VsZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInR3ZWxmdGhJbnRlcmZhY2VTZXF1
ZW5jZUF0dHJpYnV0ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRv
SlNPTj46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09OX3R3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5j
ZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAidHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlIik7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OVGhpcnRlZW50aFJlY29yZEF0dHJp
YnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RGVm
YXVsdFRvSlNPTiYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZh
dWx0VG9KU09OX3RoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT04mIHRoaXNPYmplY3QpCiB7
CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTczMiwxMiArNzMy
LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU08KICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMUmVjb3JkPElETERPTVN0cmluZywg
SURMVW5zaWduZWRTaG9ydD4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2Jh
bE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUoKSkp
KTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05UaGly
dGVlbnRoUmVjb3JkQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OX3RoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1
dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09OVGhpcnRlZW50aFJlY29y
ZEF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUiKTsK
KyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0
RGVmYXVsdFRvSlNPTl90aGlydGVlbnRoUmVjb3JkQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
dGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0RGVmYXVsdFRvSlNPTlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT04mIHRoaXNP
YmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVs
dFRvSlNPTl90aGlydGVlbnRoUmVjb3JkQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3REZWZhdWx0VG9KU09OJiB0aGlzT2JqZWN0LCBKU1Zh
bHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC03NTAsMTIgKzc1MCwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRv
SlNPCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3REZWZhdWx0VG9KU09OVGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0RGVmYXVsdFRvSlNPTl90aGlydGVlbnRoUmVjb3JkQXR0cmlidXRlLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRoaXJ0ZWVudGhSZWNv
cmRBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgInRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTl90
aGlydGVlbnRoUmVjb3JkQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ0aGlydGVlbnRoUmVjb3JkQXR0cmlidXRlIik7CiB9CiAK
LXN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlByb3RvdHlw
ZUZ1bmN0aW9uVG9KU09OQm9keShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiwgSlNUZXN0RGVmYXVsdFRvSlNPTiogY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxp
bmUgRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlByb3RvdHlwZUZ1bmN0aW9uX3Rv
SlNPTkJvZHkoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSos
IEpTVGVzdERlZmF1bHRUb0pTT04qIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNzg3LDkgKzc4Nyw5IEBAIHN0YXRpYyBpbmxpbmUgRW5j
b2RlZEpTVmFsdWUganNUZXN0RGVmYXUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3Vs
dCk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3REZWZhdWx0VG9KU09OUHJv
dG90eXBlRnVuY3Rpb25Ub0pTT04sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dERlZmF1bHRUb0pTT05Qcm90b3R5cGVGdW5jdGlvbl90b0pTT04sIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0RGVmYXVsdFRvSlNPTj46OmNhbGw8anNUZXN0RGVmYXVsdFRv
SlNPTlByb3RvdHlwZUZ1bmN0aW9uVG9KU09OQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJ0b0pTT04iKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdERlZmF1
bHRUb0pTT04+OjpjYWxsPGpzVGVzdERlZmF1bHRUb0pTT05Qcm90b3R5cGVGdW5jdGlvbl90b0pT
T05Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRvSlNPTiIpOwogfQog
CiBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3REZWZhdWx0VG9KU09OOjpzdWJzcGFjZUZvckltcGwo
SlNDOjpWTSYgdm0pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRv
SlNPTkZpbHRlcmVkQnlFeHBvc2VkLmNwcAkocmV2aXNpb24gMjY4NTQ3KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJl
ZEJ5RXhwb3NlZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDE1ICs0OSwxNSBAQCB1c2luZyBu
YW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRQcm90b3R5cGVGdW5jdGlvblRv
SlNPTik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERlZmF1bHRUb0pTT05GaWx0
ZXJlZEJ5RXhwb3NlZFByb3RvdHlwZUZ1bmN0aW9uX3RvSlNPTik7CiAKIC8vIEF0dHJpYnV0ZXMK
IAogSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRC
eUV4cG9zZWRDb25zdHJ1Y3Rvcik7CiBKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkTm9ybWFs
QXR0cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNP
TkZpbHRlcmVkQnlFeHBvc2VkRmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGUpOwotSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9z
ZWRGaWx0ZXJlZEJ5RXhwb3NlZFdvcmtlckF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZF9ub3JtYWxBdHRyaWJ1
dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVy
ZWRCeUV4cG9zZWRfZmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGUpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRfZmls
dGVyZWRCeUV4cG9zZWRXb3JrZXJBdHRyaWJ1dGUpOwogCiBjbGFzcyBKU1Rlc3REZWZhdWx0VG9K
U09ORmlsdGVyZWRCeUV4cG9zZWRQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZp
bmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTExMywxMCArMTEzLDEwIEBAIHRlbXBsYXRlPD4gY29u
c3QgQ2xhc3NJbmZvIEpTVGVzdERlZmF1bHQKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBK
U1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRQcm90b3R5cGVUYWJsZVZhbHVlc1td
ID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTkZp
bHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRC
eUV4cG9zZWRDb25zdHJ1Y3RvcikgfSB9LAotICAgIHsgIm5vcm1hbEF0dHJpYnV0ZSIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4
cG9zZWROb3JtYWxBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCi0gICAgeyAiZmlsdGVyZWRCeUV4cG9zZWRXaW5k
b3dBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVs
dFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkRmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGUp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigw
KSB9IH0sCi0gICAgeyAiZmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJBdHRyaWJ1dGUiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBv
c2VkRmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCi0gICAgeyAidG9KU09O
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRQcm90b3R5cGVGdW5jdGlvblRv
SlNPTiksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJub3JtYWxBdHRyaWJ1dGUiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlF
eHBvc2VkX25vcm1hbEF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJmaWx0ZXJlZEJ5RXhwb3NlZFdp
bmRvd0F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWZh
dWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRfZmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1
dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PigwKSB9IH0sCisgICAgeyAiZmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJBdHRyaWJ1dGUiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlF
eHBvc2VkX2ZpbHRlcmVkQnlFeHBvc2VkV29ya2VyQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgInRv
SlNPTiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5j
dGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5j
dGlvbj4oanNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkUHJvdG90eXBlRnVuY3Rp
b25fdG9KU09OKSwgKGludHB0cl90KSAoMCkgfSB9LAogfTsKIAogY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZFByb3RvdHlwZTo6c19pbmZvID0geyAi
VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZCIsICZCYXNlOjpzX2luZm8sIG51bGxw
dHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRl
cmVkQnlFeHBvc2VkUHJvdG90eXBlKSB9OwpAQCAtMjE1LDcgKzIxNSw3IEBAIEpTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWwKICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXRE
aXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZFZhbHVlKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0
VG9KU09ORmlsdGVyZWRCeUV4cG9zZWROb3JtYWxBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhw
b3NlZCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9K
U09ORmlsdGVyZWRCeUV4cG9zZWRfbm9ybWFsQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9z
ZWQmIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTIyMywxMiArMjIzLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZh
dWx0VG9KU08KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9u
Zz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5ub3JtYWxBdHRyaWJ1dGUo
KSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05G
aWx0ZXJlZEJ5RXhwb3NlZE5vcm1hbEF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBv
c2VkX25vcm1hbEF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQ+OjpnZXQ8
anNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkTm9ybWFsQXR0cmlidXRlR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAibm9ybWFsQXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQ+OjpnZXQ8anNUZXN0RGVmYXVsdFRv
SlNPTkZpbHRlcmVkQnlFeHBvc2VkX25vcm1hbEF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm5v
cm1hbEF0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVs
dFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkRmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGVH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERlZmF1bHRU
b0pTT05GaWx0ZXJlZEJ5RXhwb3NlZCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRfZmlsdGVyZWRCeUV4cG9zZWRX
aW5kb3dBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZCYgdGhpc09iamVjdCkKIHsKICAg
ICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjM2LDEyICsyMzYsMTIg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTTwogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExEb3VibGU+KGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIGltcGwuZmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGUoKSkp
KTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05GaWx0
ZXJlZEJ5RXhwb3NlZEZpbHRlcmVkQnlFeHBvc2VkV2luZG93QXR0cmlidXRlLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09O
RmlsdGVyZWRCeUV4cG9zZWRfZmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGUsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVs
dFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJl
ZEJ5RXhwb3NlZEZpbHRlcmVkQnlFeHBvc2VkV2luZG93QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAiZmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZD46OmdldDxqc1Rlc3RE
ZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRfZmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRy
aWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJmaWx0ZXJlZEJ5RXhwb3NlZFdpbmRvd0F0dHJpYnV0ZSIp
OwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVk
QnlFeHBvc2VkRmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5
RXhwb3NlZCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0
VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRfZmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJBdHRyaWJ1dGVH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERlZmF1bHRU
b0pTT05GaWx0ZXJlZEJ5RXhwb3NlZCYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjQ5LDEyICsyNDksMTIgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTTwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGltcGwuZmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJBdHRyaWJ1dGUoKSkpKTsKIH0KIAotSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3Nl
ZEZpbHRlcmVkQnlFeHBvc2VkV29ya2VyQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4
cG9zZWRfZmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRl
cmVkQnlFeHBvc2VkPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZEZp
bHRlcmVkQnlFeHBvc2VkV29ya2VyQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZmlsdGVyZWRC
eUV4cG9zZWRXb3JrZXJBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZD46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09O
RmlsdGVyZWRCeUV4cG9zZWRfZmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJBdHRyaWJ1dGVHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJmaWx0ZXJlZEJ5RXhwb3NlZFdvcmtlckF0dHJpYnV0ZSIpOwogfQogCi1zdGF0
aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhw
b3NlZFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OQm9keShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiwgSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBv
c2VkKiBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZh
dWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRQcm90b3R5cGVGdW5jdGlvbl90b0pTT05Cb2R5KEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqLCBKU1Rlc3REZWZh
dWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQqIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjcxLDkgKzI3MSw5IEBAIHN0YXRpYyBpbmxp
bmUgRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHJlc3VsdCk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3REZWZhdWx0VG9K
U09ORmlsdGVyZWRCeUV4cG9zZWRQcm90b3R5cGVGdW5jdGlvblRvSlNPTiwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkUHJv
dG90eXBlRnVuY3Rpb25fdG9KU09OLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZD46OmNhbGw8anNUZXN0RGVmYXVsdFRv
SlNPTkZpbHRlcmVkQnlFeHBvc2VkUHJvdG90eXBlRnVuY3Rpb25Ub0pTT05Cb2R5PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRvSlNPTiIpOworICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkPjo6Y2FsbDxqc1Rlc3RE
ZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRQcm90b3R5cGVGdW5jdGlvbl90b0pTT05Cb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRvSlNPTiIpOwogfQogCiBKU0M6
Oklzb1N1YnNwYWNlKiBKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQ6OnN1YnNw
YWNlRm9ySW1wbChKU0M6OlZNJiB2bSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0LmNwcAkocmV2aXNpb24gMjY4NTQ3KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjYsMTQgKzY2LDE0IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8v
IEZ1bmN0aW9ucwogCi1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0UHJvdG90eXBlRnVuY3Rpb25Ub0pTT04pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdFByb3RvdHlwZUZ1bmN0aW9uX3RvSlNPTik7
CiAKIC8vIEF0dHJpYnV0ZXMKIAogSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REZWZh
dWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKTsKIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1
dGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5o
ZXJpdEluaGVyaXRMb25nQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRfaW5oZXJpdExvbmdBdHRyaWJ1dGUpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdF9pbmhlcml0TG9u
Z0F0dHJpYnV0ZSk7CiAKIGNsYXNzIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0UHJvdG90eXBl
IGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xMjgs
OCArMTI4LDggQEAgdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RGVmYXVsdAogc3Rh
dGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0UHJvdG90
eXBlVGFibGVWYWx1ZXNbXSA9CiB7CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5o
ZXJpdENvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiaW5oZXJpdExvbmdBdHRyaWJ1dGUiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3Ig
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdERl
ZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdEluaGVyaXRMb25nQXR0cmlidXRlKSB9IH0sCi0gICAgeyAidG9KU09OIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3REZWZhdWx0VG9KU09OSW5oZXJpdFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKSwgKGludHB0cl90
KSAoMCkgfSB9LAorICAgIHsgImluaGVyaXRMb25nQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWZhdWx0VG9KU09O
SW5oZXJpdF9pbmhlcml0TG9uZ0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0
X2luaGVyaXRMb25nQXR0cmlidXRlKSB9IH0sCisgICAgeyAidG9KU09OIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3REZWZhdWx0
VG9KU09OSW5oZXJpdFByb3RvdHlwZUZ1bmN0aW9uX3RvSlNPTiksIChpbnRwdHJfdCkgKDApIH0g
fSwKIH07CiAKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdFByb3Rv
dHlwZTo6c19pbmZvID0geyAiVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0IiwgJkJhc2U6OnNfaW5m
bywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdFByb3RvdHlwZSkgfTsKQEAgLTIwNSw3ICsyMDUsNyBAQCBKU0NfREVGSU5FX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsCiAgICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRWYWx1ZSkpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRJbmhlcml0TG9uZ0F0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQmIHRoaXNPYmplY3Qp
CitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRfaW5oZXJp
dExvbmdBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0JiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZt
ID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMTMsMTIgKzIxMywxMiBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGltcGwuaW5oZXJpdExvbmdBdHRyaWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGUs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERl
ZmF1bHRUb0pTT05Jbmhlcml0X2luaGVyaXRMb25nQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0Pjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGVH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJpbmhlcml0TG9uZ0F0dHJpYnV0ZSIpOworICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQ+OjpnZXQ8anNUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRfaW5oZXJpdExvbmdBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJpbmhlcml0
TG9uZ0F0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVs
dFRvSlNPTkluaGVyaXRJbmhlcml0TG9uZ0F0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQmIHRoaXNPYmpl
Y3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRfaW5oZXJpdExvbmdBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0JiB0aGlzT2JqZWN0
LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0yMzEsMTIgKzIzMSwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVm
YXVsdFRvSlNPCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEluaGVyaXRMb25nQXR0cmlidXRlLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdF9pbmhlcml0TG9uZ0F0dHJpYnV0ZSwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdD46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdEluaGVyaXRMb25nQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJpbmhlcml0TG9uZ0F0dHJpYnV0ZSIpOworICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQ+OjpzZXQ8c2V0
SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRfaW5oZXJpdExvbmdBdHRyaWJ1dGVTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImluaGVyaXRMb25n
QXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0RGVm
YXVsdFRvSlNPTkluaGVyaXRQcm90b3R5cGVGdW5jdGlvblRvSlNPTkJvZHkoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSosIEpTVGVzdERlZmF1bHRUb0pTT05J
bmhlcml0KiBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdFByb3RvdHlwZUZ1bmN0aW9uX3RvSlNPTkJvZHkoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSosIEpTVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0KiBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTI2OSw5ICsyNjksOSBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdERlZmF1CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1K
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRQcm90b3R5
cGVGdW5jdGlvblRvSlNPTiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0RGVm
YXVsdFRvSlNPTkluaGVyaXRQcm90b3R5cGVGdW5jdGlvbl90b0pTT04sIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQ+OjpjYWxsPGpzVGVz
dERlZmF1bHRUb0pTT05Jbmhlcml0UHJvdG90eXBlRnVuY3Rpb25Ub0pTT05Cb2R5PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRvSlNPTiIpOworICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQ+OjpjYWxsPGpzVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0UHJvdG90eXBlRnVuY3Rpb25fdG9KU09OQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJ0b0pTT04iKTsKIH0KIAogSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0
RGVmYXVsdFRvSlNPTkluaGVyaXQ6OnN1YnNwYWNlRm9ySW1wbChKU0M6OlZNJiB2bSkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdEZpbmFsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbC5jcHAJKHJl
dmlzaW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjYsMTYgKzY2LDE2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1K
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxQ
cm90b3R5cGVGdW5jdGlvblRvSlNPTik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxQcm90b3R5cGVGdW5jdGlvbl90b0pTT04pOwogCiAv
LyBBdHRyaWJ1dGVzCiAKIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKTsKIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKTsKLUpTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9u
Z0F0dHJpYnV0ZUZvbyk7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1
bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVGb28pOwotSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0
cmlidXRlQmFyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUJhcik7CitKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxfZmluYWxMb25nQXR0cmli
dXRlRm9vKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNP
TkluaGVyaXRGaW5hbF9maW5hbExvbmdBdHRyaWJ1dGVGb28pOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsX2ZpbmFsTG9uZ0F0dHJpYnV0
ZUJhcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05J
bmhlcml0RmluYWxfZmluYWxMb25nQXR0cmlidXRlQmFyKTsKIAogY2xhc3MgSlNUZXN0RGVmYXVs
dFRvSlNPTkluaGVyaXRGaW5hbFByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmlu
YWxPYmplY3QgewogcHVibGljOgpAQCAtMTMwLDkgKzEzMCw5IEBAIHRlbXBsYXRlPD4gY29uc3Qg
Q2xhc3NJbmZvIEpTVGVzdERlZmF1bHQKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rl
c3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7CiAg
ICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Rmlu
YWxDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3Rv
cikgfSB9LAotICAgIHsgImZpbmFsTG9uZ0F0dHJpYnV0ZUZvbyIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RGVmYXVsdFRvSlNPTklu
aGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUZvbyksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVGb28pIH0gfSwKLSAgICB7ICJmaW5hbExvbmdBdHRy
aWJ1dGVCYXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVC
YXIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PihzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlQmFy
KSB9IH0sCi0gICAgeyAidG9KU09OIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsUHJv
dG90eXBlRnVuY3Rpb25Ub0pTT04pLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAiZmluYWxM
b25nQXR0cmlidXRlRm9vIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmli
dXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsX2ZpbmFsTG9uZ0F0
dHJpYnV0ZUZvbyksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxfZmluYWxMb25nQXR0
cmlidXRlRm9vKSB9IH0sCisgICAgeyAiZmluYWxMb25nQXR0cmlidXRlQmFyIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3REZWZhdWx0
VG9KU09OSW5oZXJpdEZpbmFsX2ZpbmFsTG9uZ0F0dHJpYnV0ZUJhciksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0RmluYWxfZmluYWxMb25nQXR0cmlidXRlQmFyKSB9IH0sCisgICAgeyAidG9K
U09OIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0
aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsUHJvdG90eXBlRnVuY3Rpb25fdG9K
U09OKSwgKGludHB0cl90KSAoMCkgfSB9LAogfTsKIAogY29uc3QgQ2xhc3NJbmZvIEpTVGVzdERl
ZmF1bHRUb0pTT05Jbmhlcml0RmluYWxQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3REZWZhdWx0
VG9KU09OSW5oZXJpdEZpbmFsIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsUHJvdG90eXBl
KSB9OwpAQCAtMjA4LDcgKzIwOCw3IEBAIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3REZWZhdWwKICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAK
LXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmlu
YWxMb25nQXR0cmlidXRlRm9vR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsJiB0aGlzT2JqZWN0KQorc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxfZmluYWxMb25n
QXR0cmlidXRlRm9vR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8m
IHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMTYsMTIgKzIxNiwxMiBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIGltcGwuZmluYWxMb25nQXR0cmlidXRlRm9vKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0
cmlidXRlRm9vLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsX2ZpbmFsTG9uZ0F0dHJpYnV0ZUZvbywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0
RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVGb29HZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9y
OjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJmaW5hbExvbmdBdHRy
aWJ1dGVGb28iKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT05J
bmhlcml0RmluYWw+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbF9maW5hbExv
bmdBdHRyaWJ1dGVGb29HZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJmaW5hbExvbmdBdHRyaWJ1dGVGb28iKTsK
IH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Rmlu
YWxGaW5hbExvbmdBdHRyaWJ1dGVGb29TZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwmIHRoaXNPYmplY3QsIEpT
VmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTklu
aGVyaXRGaW5hbF9maW5hbExvbmdBdHRyaWJ1dGVGb29TZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwmIHRoaXNP
YmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTIzNCwxMiArMjM0LDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3REZWZhdWx0VG9KU08KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1
dGVGb28sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxfZmluYWxMb25n
QXR0cmlidXRlRm9vLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWw+Ojpz
ZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUZv
b1NldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
ZmluYWxMb25nQXR0cmlidXRlRm9vIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0RmluYWxfZmluYWxMb25nQXR0cmlidXRlRm9vU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJmaW5hbExvbmdBdHRyaWJ1dGVGb28iKTsKIH0K
IAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxG
aW5hbExvbmdBdHRyaWJ1dGVCYXJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwmIHRoaXNPYmplY3QpCitzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbF9maW5hbExv
bmdBdHRyaWJ1dGVCYXJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwmIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0
byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI0NywxMiArMjQ3LDEyIEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU08KICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgaW1wbC5maW5hbExvbmdBdHRyaWJ1dGVCYXIoKSkpKTsKIH0KIAotSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdB
dHRyaWJ1dGVCYXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxfZmluYWxMb25nQXR0cmlidXRlQmFy
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWw+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkluaGVy
aXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUJhckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImZpbmFsTG9uZ0F0
dHJpYnV0ZUJhciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNP
TkluaGVyaXRGaW5hbD46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsX2ZpbmFs
TG9uZ0F0dHJpYnV0ZUJhckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImZpbmFsTG9uZ0F0dHJpYnV0ZUJhciIp
OwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRG
aW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUJhclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbCYgdGhpc09iamVjdCwg
SlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09O
SW5oZXJpdEZpbmFsX2ZpbmFsTG9uZ0F0dHJpYnV0ZUJhclNldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbCYgdGhp
c09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMjY1LDEyICsyNjUsMTIgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdERlZmF1bHRUb0pTTwogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJp
YnV0ZUJhciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbF9maW5hbExv
bmdBdHRyaWJ1dGVCYXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewot
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbD46
OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRl
QmFyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJmaW5hbExvbmdBdHRyaWJ1dGVCYXIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWw+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTklu
aGVyaXRGaW5hbF9maW5hbExvbmdBdHRyaWJ1dGVCYXJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImZpbmFsTG9uZ0F0dHJpYnV0ZUJhciIpOwog
fQogCi1zdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0RmluYWxQcm90b3R5cGVGdW5jdGlvblRvSlNPTkJvZHkoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSosIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Rmlu
YWwqIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1
bHRUb0pTT05Jbmhlcml0RmluYWxQcm90b3R5cGVGdW5jdGlvbl90b0pTT05Cb2R5KEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqLCBKU1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdEZpbmFsKiBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTMwNSw5ICszMDUsOSBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdERlZmF1CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwog
fQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRG
aW5hbFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsUHJvdG90eXBlRnVuY3Rpb25fdG9KU09O
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0RmluYWw+OjpjYWxsPGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxQcm90b3R5cGVG
dW5jdGlvblRvSlNPTkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidG9K
U09OIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJp
dEZpbmFsPjo6Y2FsbDxqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsUHJvdG90eXBlRnVu
Y3Rpb25fdG9KU09OQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0b0pT
T04iKTsKIH0KIAogSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRG
aW5hbDo6c3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZtKQpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERvbWFpblNlY3VyaXR5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RG9t
YWluU2VjdXJpdHkuY3BwCShyZXZpc2lvbiAyNjg1NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RG9tYWluU2VjdXJpdHkuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01MiwxNSArNTIsMTUgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rp
b25zCiAKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0RG9tYWluU2VjdXJpdHlQcm90
b3R5cGVGdW5jdGlvbkV4Y2l0aW5nRnVuY3Rpb24pOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UpOwotSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0
aW9uT3ZlcmxvYWRlZE1ldGhvZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERv
bWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25fZXhjaXRpbmdGdW5jdGlvbik7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25f
cG9zdE1lc3NhZ2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3REb21haW5TZWN1
cml0eVByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2QpOwogCiAvLyBBdHRyaWJ1dGVz
CiAKIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1
Y3Rvcik7CiBKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdERvbWFpblNlY3VyaXR5
Q29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3REb21haW5TZWN1
cml0eUV4Y2l0aW5nQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdERvbWFp
blNlY3VyaXR5X2V4Y2l0aW5nQXR0cik7CiAKIGNsYXNzIEpTVGVzdERvbWFpblNlY3VyaXR5UHJv
dG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBA
IC0xMDYsNyArMTA2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpT
VAogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0RG9tYWluU2VjdXJpdHlUYWJs
ZVZhbHVlc1tdID0KIHsKLSAgICB7ICJleGNpdGluZ0F0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0
ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0RG9tYWluU2VjdXJpdHlFeGNpdGluZ0F0dHIpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAg
eyAiZXhjaXRpbmdBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3Ig
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdERv
bWFpblNlY3VyaXR5X2V4Y2l0aW5nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKIH07CiAKIHN0YXRpYyBjb25zdCBIYXNo
VGFibGUgSlNUZXN0RG9tYWluU2VjdXJpdHlUYWJsZSA9IHsgMSwgMSwgdHJ1ZSwgSlNUZXN0RG9t
YWluU2VjdXJpdHk6OmluZm8oKSwgSlNUZXN0RG9tYWluU2VjdXJpdHlUYWJsZVZhbHVlcywgSlNU
ZXN0RG9tYWluU2VjdXJpdHlUYWJsZUluZGV4IH07CkBAIC0xMzAsOSArMTMwLDkgQEAgdGVtcGxh
dGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RG9tYWluUwogc3RhdGljIGNvbnN0IEhhc2hUYWJs
ZVZhbHVlIEpTVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7CiAg
ICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0
b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PihzZXRKU1Rlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiZXhjaXRp
bmdGdW5jdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNUZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5cGVGdW5jdGlvbkV4Y2l0aW5n
RnVuY3Rpb24pLCAoaW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAicG9zdE1lc3NhZ2UiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZSksIChpbnRwdHJfdCkg
KDEpIH0gfSwKLSAgICB7ICJvdmVybG9hZGVkTWV0aG9kIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3REb21haW5TZWN1cml0eVBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZCksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAg
ICB7ICJleGNpdGluZ0Z1bmN0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0
aW9uX2V4Y2l0aW5nRnVuY3Rpb24pLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAicG9zdE1l
c3NhZ2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVu
Y3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25fcG9zdE1lc3NhZ2Up
LCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAib3ZlcmxvYWRlZE1ldGhvZCIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0RG9t
YWluU2VjdXJpdHlQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZGVkTWV0aG9kKSwgKGludHB0cl90
KSAoMSkgfSB9LAogfTsKIAogY29uc3QgQ2xhc3NJbmZvIEpTVGVzdERvbWFpblNlY3VyaXR5UHJv
dG90eXBlOjpzX2luZm8gPSB7ICJUZXN0RG9tYWluU2VjdXJpdHkiLCAmQmFzZTo6c19pbmZvLCBu
dWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdERvbWFpblNlY3VyaXR5
UHJvdG90eXBlKSB9OwpAQCAtMjE0LDcgKzIxNCw3IEBAIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3REb21haW4KICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVl
KSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REb21haW5TZWN1cml0eUV4Y2l0
aW5nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0
RG9tYWluU2VjdXJpdHkmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
RG9tYWluU2VjdXJpdHlfZXhjaXRpbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3REb21haW5TZWN1cml0eSYgdGhpc09iamVjdCkKIHsKICAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjI2LDEyICsyMjYsMTIgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERvbWFpblNlY3VyaQogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBpbXBsLmV4Y2l0aW5nQXR0cigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0RG9tYWluU2VjdXJpdHlFeGNpdGluZ0F0dHIsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdERvbWFpblNlY3VyaXR5X2V4
Y2l0aW5nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3REb21haW5TZWN1cml0eT46OmdldDxqc1Rlc3REb21haW5TZWN1cml0eUV4Y2l0
aW5nQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImV4Y2l0aW5nQXR0ciIpOworICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0RG9tYWluU2VjdXJpdHk+OjpnZXQ8anNUZXN0RG9tYWluU2VjdXJpdHlf
ZXhjaXRpbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZXhjaXRpbmdBdHRyIik7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlw
ZUZ1bmN0aW9uRXhjaXRpbmdGdW5jdGlvbkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3Bl
cmF0aW9uPEpTVGVzdERvbWFpblNlY3VyaXR5Pjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykK
K3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REb21haW5TZWN1cml0eVBy
b3RvdHlwZUZ1bmN0aW9uX2V4Y2l0aW5nRnVuY3Rpb25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1l
IElETE9wZXJhdGlvbjxKU1Rlc3REb21haW5TZWN1cml0eT46OkNsYXNzUGFyYW1ldGVyIGNhc3Rl
ZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjUy
LDEyICsyNTIsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uRXhj
aXRpbmdGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0RG9tYWlu
U2VjdXJpdHlQcm90b3R5cGVGdW5jdGlvbl9leGNpdGluZ0Z1bmN0aW9uLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdERvbWFpblNlY3VyaXR5Pjo6Y2FsbDxqc1Rlc3REb21h
aW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uRXhjaXRpbmdGdW5jdGlvbkJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZXhjaXRpbmdGdW5jdGlvbiIpOworICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0RG9tYWluU2VjdXJpdHk+OjpjYWxsPGpzVGVzdERvbWFpblNl
Y3VyaXR5UHJvdG90eXBlRnVuY3Rpb25fZXhjaXRpbmdGdW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZXhjaXRpbmdGdW5jdGlvbiIpOwogfQogCi1zdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5cGVG
dW5jdGlvblBvc3RNZXNzYWdlQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248
SlNUZXN0RG9tYWluU2VjdXJpdHk+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBl
RnVuY3Rpb25fcG9zdE1lc3NhZ2VCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlv
bjxKU1Rlc3REb21haW5TZWN1cml0eT46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAg
ICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjc0LDEyICsyNzQsMTIg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBl
RnVuY3Rpb25fcG9zdE1lc3NhZ2UsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0RG9tYWluU2VjdXJpdHk+OjpjYWxsPGpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVu
Y3Rpb25Qb3N0TWVzc2FnZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
cG9zdE1lc3NhZ2UiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdERvbWFpblNlY3Vy
aXR5Pjo6Y2FsbDxqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uX3Bvc3RNZXNz
YWdlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJwb3N0TWVzc2FnZSIp
OwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RG9tYWluU2Vj
dXJpdHlQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxQm9keShKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0
eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0RG9tYWluU2VjdXJpdHk+OjpDbGFzc1BhcmFtZXRl
ciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERv
bWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZDFCb2R5KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxs
RnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3REb21haW5TZWN1cml0eT46OkNsYXNz
UGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMjk1LDcgKzI5NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
fQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RG9tYWluU2VjdXJp
dHlQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QyQm9keShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBl
bmFtZSBJRExPcGVyYXRpb248SlNUZXN0RG9tYWluU2VjdXJpdHk+OjpDbGFzc1BhcmFtZXRlciBj
YXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERvbWFp
blNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZDJCb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3REb21haW5TZWN1cml0eT46OkNsYXNzUGFy
YW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMzEzLDcgKzMxMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RG9tYWluU2VjdXJpdHlQ
cm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RPdmVybG9hZERpc3BhdGNoZXIoSlNDOjpK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdERvbWFpblNlY3VyaXR5Pjo6Q2xhc3NQ
YXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2RPdmVy
bG9hZERpc3BhdGNoZXIoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdERv
bWFpblNlY3VyaXR5Pjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMjUsMTcgKzMyNSwxNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAgICAgc2l6ZV90IGFyZ3NDb3VudCA9IHN0ZDo6bWlu
PHNpemVfdD4oMiwgY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkpOwogICAgIGlmIChhcmdzQ291
bnQgPT0gMSkgewotICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVz
dERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMUJvZHkobGV4
aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOworICAgICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBl
RnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZDFCb2R5KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxG
cmFtZSwgY2FzdGVkVGhpcykpKTsKICAgICB9CiAgICAgaWYgKGFyZ3NDb3VudCA9PSAyKSB7Ci0g
ICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0RG9tYWluU2VjdXJp
dHlQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QyQm9keShsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7CisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAoanNUZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5cGVGdW5jdGlvbl9vdmVy
bG9hZGVkTWV0aG9kMkJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRU
aGlzKSkpOwogICAgIH0KICAgICByZXR1cm4gYXJnc0NvdW50IDwgMSA/IHRocm93Vk1FcnJvcihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNF
cnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSkgOiB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVu
Y3Rpb25fb3ZlcmxvYWRlZE1ldGhvZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3REb21haW5TZWN1cml0eT46OmNhbGw8anNUZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5cGVG
dW5jdGlvbk92ZXJsb2FkZWRNZXRob2RPdmVybG9hZERpc3BhdGNoZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAib3ZlcmxvYWRlZE1ldGhvZCIpOworICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0RG9tYWluU2VjdXJpdHk+OjpjYWxsPGpzVGVzdERvbWFpblNlY3VyaXR5
UHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZE92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJvdmVybG9hZGVkTWV0aG9kIik7CiB9CiAK
IEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVzdERvbWFpblNlY3VyaXR5OjpzdWJzcGFjZUZvckltcGwo
SlNDOjpWTSYgdm0pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwCShy
ZXZpc2lvbiAyNjg1NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDI1ICs1
MiwyNSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogLy8gRnVuY3Rpb25zCiAKICNpZiBFTkFCTEUo
VEVTVF9GRUFUVVJFKQotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RFbmFibGVkQnlT
ZXR0aW5nUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkQnlTZXR0aW5nT3BlcmF0aW9uKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZUZ1bmN0
aW9uX2VuYWJsZWRCeVNldHRpbmdPcGVyYXRpb24pOwogI2VuZGlmCiAKIC8vIEF0dHJpYnV0ZXMK
IAogSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3Ry
dWN0b3IpOwogSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RFbmFibGVkQnlTZXR0
aW5nQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RFbmFibGVk
QnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rvcik7Ci1KU0NfREVD
TEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdUZXN0U3ViT2JqRW5h
YmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0RW5hYmxlZEJ5U2V0dGluZ19UZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9y
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ19U
ZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKTsKICNpZiBFTkFCTEUoVEVTVF9G
RUFUVVJFKQotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RFbmFibGVkQnlTZXR0aW5n
RW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RW5hYmxlZEJ5U2V0dGluZ19lbmFibGVkQnlTZXR0
aW5nQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RW5hYmxl
ZEJ5U2V0dGluZ19lbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlKTsKICNlbmRpZgogI2lmIEVOQUJM
RShURVNUX0ZFQVRVUkUpCi1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEVuYWJsZWRC
eVNldHRpbmdFbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlUd29TZXR0aW5nc0F0
dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEVuYWJsZWRCeVNldHRp
bmdfZW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nX2VuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmli
dXRlKTsKICNlbmRpZgotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RFbmFibGVkQnlT
ZXR0aW5nU3VwcGxlbWVudGFsQXR0cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZSk7CitKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEVuYWJsZWRCeVNldHRpbmdfc3VwcGxlbWVudGFsQXR0
cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RW5hYmxlZEJ5U2V0
dGluZ19zdXBwbGVtZW50YWxBdHRyaWJ1dGUpOwogCiBjbGFzcyBKU1Rlc3RFbmFibGVkQnlTZXR0
aW5nUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJs
aWM6CkBAIC0xNDMsMTggKzE0MywxOCBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNU
ZXN0RW5hYmxlCiB7CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEVuYWJsZWRC
eVNldHRpbmdDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rvcikg
fSB9LAogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi0gICAgeyAiZW5hYmxlZEJ5U2V0dGluZ0F0
dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpD
dXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRK
U1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSkgfSB9LAorICAg
IHsgImVuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEVuYWJsZWRCeVNldHRpbmdfZW5hYmxl
ZEJ5U2V0dGluZ0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdfZW5hYmxlZEJ5U2V0
dGluZ0F0dHJpYnV0ZSkgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAs
IDAgfSB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLSAgICB7ICJlbmFibGVk
QnlUd29TZXR0aW5nc0F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRP
TUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVR3b1Nl
dHRpbmdzQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVR3b1NldHRp
bmdzQXR0cmlidXRlKSB9IH0sCisgICAgeyAiZW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdEVuYWJsZWRCeVNldHRpbmdfZW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rl
c3RFbmFibGVkQnlTZXR0aW5nX2VuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlKSB9IH0sCiAj
ZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKLSAgICB7
ICJzdXBwbGVtZW50YWxBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
T01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxB
dHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPihzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFsQXR0cmlidXRlKSB9
IH0sCisgICAgeyAic3VwcGxlbWVudGFsQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RFbmFibGVkQnlTZXR0aW5nX3N1
cHBsZW1lbnRhbEF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdfc3VwcGxlbWVudGFs
QXR0cmlidXRlKSB9IH0sCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLSAgICB7ICJlbmFibGVk
QnlTZXR0aW5nT3BlcmF0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlRnVuY3Rp
b25FbmFibGVkQnlTZXR0aW5nT3BlcmF0aW9uKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsg
ImVuYWJsZWRCeVNldHRpbmdPcGVyYXRpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5
cGVGdW5jdGlvbl9lbmFibGVkQnlTZXR0aW5nT3BlcmF0aW9uKSwgKGludHB0cl90KSAoMSkgfSB9
LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCkBA
IC0yMjksNyArMjI5LDcgQEAgdm9pZCBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nOjpmaW5pc2hDcmVh
dAogICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNfYmFzZV9vZjxBY3RpdmVET01PYmplY3QsIFRl
c3RFbmFibGVkQnlTZXR0aW5nPjo6dmFsdWUsICJJbnRlcmZhY2UgaXMgbm90IG1hcmtlZCBhcyBb
QWN0aXZlRE9NT2JqZWN0XSBldmVuIHRob3VnaCBpbXBsZW1lbnRhdGlvbiBjbGFzcyBzdWJjbGFz
c2VzIEFjdGl2ZURPTU9iamVjdC4iKTsKIAogICAgIGlmIChkb3duY2FzdDxEb2N1bWVudD4oanND
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpLT5zZXR0aW5ncygpLnRlc3RTZXR0aW5nRW5hYmxlZCgpKQotICAgICAgICBwdXRE
aXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5j
bGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdQdWJs
aWNOYW1lKCksIEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBqc1Rlc3RFbmFibGVkQnlT
ZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rvciwgc2V0SlNUZXN0RW5h
YmxlZEJ5U2V0dGluZ1Rlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IpLCBhdHRy
aWJ1dGVzRm9yU3RydWN0dXJlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSkpKTsKKyAgICAgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0s
IHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1l
cygpLlRlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nUHVibGljTmFtZSgpLCBDdXN0b21HZXR0ZXJT
ZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0RW5hYmxlZEJ5U2V0dGluZ19UZXN0U3ViT2JqRW5hYmxl
ZEJ5U2V0dGluZ0NvbnN0cnVjdG9yLCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nX1Rlc3RTdWJP
YmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IpLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpKTsK
IH0KIAogSlNPYmplY3QqIEpTVGVzdEVuYWJsZWRCeVNldHRpbmc6OmNyZWF0ZVByb3RvdHlwZShW
TSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCkBAIC0yODYsMzEgKzI4Niwz
MSBAQCBKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RW5hYmxlCiAgICAgcmV0dXJu
IHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3Rvciwg
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Rlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3Ry
dWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEVu
YWJsZWRCeVNldHRpbmcmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
RW5hYmxlZEJ5U2V0dGluZ19UZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yR2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RFbmFibGVkQnlT
ZXR0aW5nJiB0aGlzT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICByZXR1cm4gSlNUZXN0U3ViT2JqOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAK
LUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9i
akVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RW5hYmxlZEJ5U2V0dGluZ19UZXN0U3ViT2JqRW5h
YmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEVuYWJsZWRCeVNldHRpbmc+OjpnZXQ8anNUZXN0RW5h
YmxlZEJ5U2V0dGluZ1Rlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3JHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0
dGluZyIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RW5hYmxlZEJ5U2V0dGluZz46
OmdldDxqc1Rlc3RFbmFibGVkQnlTZXR0aW5nX1Rlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29u
c3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U3Vi
T2JqRW5hYmxlZEJ5U2V0dGluZyIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
RW5hYmxlZEJ5U2V0dGluZ1Rlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3JTZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEVuYWJsZWRCeVNl
dHRpbmcmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ19UZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVj
dG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RFbmFi
bGVkQnlTZXR0aW5nJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZt
ID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5nIGEg
YnVpbHQtaW4gY29uc3RydWN0b3IuCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZt
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oIlRlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nIiksIHN0cmxlbigiVGVzdFN1Yk9iakVuYWJs
ZWRCeVNldHRpbmciKSksIHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdEVuYWJsZWRCeVNldHRpbmdUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nX1Rlc3RTdWJPYmpFbmFibGVkQnlT
ZXR0aW5nQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQog
ewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RW5hYmxlZEJ5U2V0dGluZz46OnNldDxz
ZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1
Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAiVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmciKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEVuYWJsZWRCeVNldHRpbmc+OjpzZXQ8c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ19U
ZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0
dGluZyIpOwogfQogCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLXN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZUdldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RW5hYmxlZEJ5U2V0
dGluZyYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlT
ZXR0aW5nX2VuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEVuYWJsZWRCeVNldHRpbmcmIHRoaXNPYmplY3QpCiB7
CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMxOCwxNSArMzE4
LDE1IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXQKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmVuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUoKSkp
KTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEVuYWJsZWRCeVNldHRpbmdF
bmFibGVkQnlTZXR0aW5nQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RFbmFibGVkQnlTZXR0aW5nX2VuYWJsZWRCeVNldHRpbmdB
dHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0RW5hYmxlZEJ5U2V0dGluZz46OmdldDxqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5h
YmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImVuYWJsZWRCeVNldHRpbmdB
dHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEVuYWJsZWRCeVNldHRp
bmc+OjpnZXQ8anNUZXN0RW5hYmxlZEJ5U2V0dGluZ19lbmFibGVkQnlTZXR0aW5nQXR0cmlidXRl
R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAiZW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSIpOwogfQogCiAjZW5k
aWYKIAogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEVuYWJsZWRCeVNldHRpbmcmIHRo
aXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RW5h
YmxlZEJ5U2V0dGluZ19lbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nJiB0aGlzT2Jq
ZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0zMzksMTUgKzMzOSwxNSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
RW5hYmxlZEJ5U2V0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ19lbmFibGVkQnlTZXR0aW5nQXR0cmlidXRl
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEVuYWJsZWRCeVNldHRpbmc+OjpzZXQ8c2V0SlNUZXN0RW5hYmxlZEJ5
U2V0dGluZ0VuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImVuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUi
KTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEVuYWJsZWRCeVNldHRpbmc+OjpzZXQ8
c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ19lbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJlbmFibGVk
QnlTZXR0aW5nQXR0cmlidXRlIik7CiB9CiAKICNlbmRpZgogCiAjaWYgRU5BQkxFKFRFU1RfRkVB
VFVSRSkKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxl
ZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdEVuYWJsZWRCeVNldHRpbmcmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5U2V0dGluZ19lbmFibGVkQnlUd29TZXR0aW5nc0F0
dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0
RW5hYmxlZEJ5U2V0dGluZyYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMzU1LDE1ICszNTUsMTUgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdEVuYWJsZWRCeVNldAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwuZW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlUd29TZXR0aW5nc0F0
dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0RW5hYmxlZEJ5U2V0dGluZ19lbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZSwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFi
bGVkQnlTZXR0aW5nPjo6Z2V0PGpzVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlUd29TZXR0
aW5nc0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImVuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmli
dXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVkQnlTZXR0aW5nPjo6
Z2V0PGpzVGVzdEVuYWJsZWRCeVNldHRpbmdfZW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGVH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJlbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZSIpOwogfQogCiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlU2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RFbmFibGVkQnlTZXR0
aW5nJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdEVuYWJsZWRCeVNldHRpbmdfZW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGVTZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEVuYWJsZWRCeVNldHRp
bmcmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM3NiwxNCArMzc2LDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RFbmFibGVkQnlTZXQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklO
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlUd29TZXR0
aW5nc0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ19lbmFibGVkQnlU
d29TZXR0aW5nc0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVkQnlTZXR0aW5nPjo6c2V0
PHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZVNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZW5h
YmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEVuYWJsZWRCeVNldHRpbmc+OjpzZXQ8c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ19lbmFi
bGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUiKTsK
IH0KIAogI2VuZGlmCiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0
aW5nU3VwcGxlbWVudGFsQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nJiB0aGlzT2JqZWN0KQorc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdfc3VwcGxlbWVudGFsQXR0cmlidXRl
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RFbmFibGVk
QnlTZXR0aW5nJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0zOTEsMTIgKzM5MSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0RW5hYmxlZEJ5U2V0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgV2ViQ29yZTo6
VGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbEF0dHJpYnV0ZShp
bXBsKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEVuYWJsZWRCeVNl
dHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEVuYWJsZWRCeVNldHRpbmdfc3VwcGxlbWVudGFsQXR0
cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEVuYWJsZWRCeVNldHRpbmc+OjpnZXQ8anNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBs
ZW1lbnRhbEF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN1cHBsZW1lbnRhbEF0dHJpYnV0ZSIp
OworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RW5hYmxlZEJ5U2V0dGluZz46OmdldDxq
c1Rlc3RFbmFibGVkQnlTZXR0aW5nX3N1cHBsZW1lbnRhbEF0dHJpYnV0ZUdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInN1cHBsZW1lbnRhbEF0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZVNldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZyYgdGhp
c09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RFbmFi
bGVkQnlTZXR0aW5nX3N1cHBsZW1lbnRhbEF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZyYgdGhpc09iamVjdCwg
SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtNDA5LDEzICs0MDksMTMgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEVuYWJs
ZWRCeVNldAogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZSwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ19zdXBwbGVtZW50YWxBdHRyaWJ1dGUsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0RW5hYmxlZEJ5U2V0dGluZz46OnNldDxzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxl
bWVudGFsQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJzdXBwbGVtZW50YWxBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEVuYWJsZWRCeVNldHRpbmc+OjpzZXQ8c2V0SlNUZXN0RW5hYmxlZEJ5U2V0
dGluZ19zdXBwbGVtZW50YWxBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN1cHBsZW1lbnRhbEF0dHJpYnV0ZSIpOwogfQogCiAj
aWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkQnlTZXR0aW5n
T3BlcmF0aW9uQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0RW5h
YmxlZEJ5U2V0dGluZz46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZUZ1bmN0
aW9uX2VuYWJsZWRCeVNldHRpbmdPcGVyYXRpb25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElE
TE9wZXJhdGlvbjxKU1Rlc3RFbmFibGVkQnlTZXR0aW5nPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVk
VGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00MzIs
OSArNDMyLDkgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlRnVuY3Rpb25FbmFi
bGVkQnlTZXR0aW5nT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlRnVuY3Rpb25fZW5hYmxlZEJ5U2V0dGluZ09wZXJh
dGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RFbmFibGVkQnlTZXR0
aW5nPjo6Y2FsbDxqc1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlRnVuY3Rpb25FbmFibGVk
QnlTZXR0aW5nT3BlcmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJlbmFibGVkQnlTZXR0aW5nT3BlcmF0aW9uIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RFbmFibGVkQnlTZXR0aW5nPjo6Y2FsbDxqc1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJvdG90
eXBlRnVuY3Rpb25fZW5hYmxlZEJ5U2V0dGluZ09wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAiZW5hYmxlZEJ5U2V0dGluZ09wZXJhdGlvbiIpOwogfQogCiAj
ZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFbmFibGVkRm9yQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRGb3JDb250ZXh0LmNwcAkocmV2aXNp
b24gMjY4NTQ3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEVuYWJsZWRGb3JDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsOCArNTAsOCBA
QCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IpOwogSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0RW5hYmxlZEZvckNvbnRleHRUZXN0U3ViT2JqRW5hYmxlZEZvckNv
bnRleHRDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEVu
YWJsZWRGb3JDb250ZXh0VGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RFbmFibGVkRm9yQ29udGV4dF9UZXN0U3Vi
T2JqRW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0X1Rlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4
dENvbnN0cnVjdG9yKTsKIAogY2xhc3MgSlNUZXN0RW5hYmxlZEZvckNvbnRleHRQcm90b3R5cGUg
ZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTEzMyw3
ICsxMzMsNyBAQCB2b2lkIEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0OjpmaW5pc2hDcmVhCiAgICAg
c3RhdGljX2Fzc2VydCghc3RkOjppc19iYXNlX29mPEFjdGl2ZURPTU9iamVjdCwgVGVzdEVuYWJs
ZWRGb3JDb250ZXh0Pjo6dmFsdWUsICJJbnRlcmZhY2UgaXMgbm90IG1hcmtlZCBhcyBbQWN0aXZl
RE9NT2JqZWN0XSBldmVuIHRob3VnaCBpbXBsZW1lbnRhdGlvbiBjbGFzcyBzdWJjbGFzc2VzIEFj
dGl2ZURPTU9iamVjdC4iKTsKIAogICAgIGlmICgoZG93bmNhc3Q8RG9jdW1lbnQ+KGpzQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKS0+c2V0dGluZ3MoKS50ZXN0U2V0dGluZ0VuYWJsZWQoKSAmJiBUZXN0U3ViT2JqRW5hYmxl
ZEZvckNvbnRleHQ6OmVuYWJsZWRGb3JDb250ZXh0KCpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3Qq
PihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpKQotICAgICAgICBw
dXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2
bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuVGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0
UHVibGljTmFtZSgpLCBDdXN0b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0RW5hYmxl
ZEZvckNvbnRleHRUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3Rvciwgc2V0SlNU
ZXN0RW5hYmxlZEZvckNvbnRleHRUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3Rv
ciksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSkpOworICAgICAgICBwdXREaXJlY3RDdXN0b21BY2Nl
c3Nvcih2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVp
bHRpbk5hbWVzKCkuVGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0UHVibGljTmFtZSgpLCBDdXN0
b21HZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0RW5hYmxlZEZvckNvbnRleHRfVGVzdFN1
Yk9iakVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IsIHNldEpTVGVzdEVuYWJsZWRGb3JDb250
ZXh0X1Rlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKSwgYXR0cmlidXRlc0Zv
clN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pKSk7CiB9CiAKIEpTT2JqZWN0KiBKU1Rlc3RFbmFibGVkRm9yQ29udGV4dDo6Y3Jl
YXRlUHJvdG90eXBlKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAg
LTE4NSwyNyArMTg1LDI3IEBAIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RFbmFi
bGUKICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMt
PmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFbmFibGVkRm9yQ29udGV4dFRlc3RTdWJPYmpFbmFibGVk
Rm9yQ29udGV4dENvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RFbmFibGVkRm9yQ29udGV4dCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RFbmFibGVkRm9yQ29udGV4dF9UZXN0U3ViT2JqRW5hYmxlZEZvckNv
bnRleHRDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNUZXN0RW5hYmxlZEZvckNvbnRleHQmIHRoaXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BB
UkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1Rlc3RTdWJPYmo6OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmds
b2JhbE9iamVjdCgpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEVuYWJs
ZWRGb3JDb250ZXh0VGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEVuYWJsZWRG
b3JDb250ZXh0X1Rlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEVuYWJsZWRG
b3JDb250ZXh0Pjo6Z2V0PGpzVGVzdEVuYWJsZWRGb3JDb250ZXh0VGVzdFN1Yk9iakVuYWJsZWRG
b3JDb250ZXh0Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHQiKTsKKyAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0Pjo6Z2V0PGpzVGVzdEVuYWJsZWRGb3JDb250ZXh0
X1Rlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0Iik7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RFbmFibGVkRm9yQ29udGV4dFRlc3RTdWJP
YmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RFbmFibGVkRm9yQ29udGV4dCYgdGhpc09iamVjdCwgSlNW
YWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RFbmFibGVkRm9yQ29udGV4
dF9UZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RW5hYmxlZEZvckNvbnRleHQmIHRoaXNP
YmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rv
ci4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFN1Yk9iakVuYWJs
ZWRGb3JDb250ZXh0IiksIHN0cmxlbigiVGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0IikpLCB2
YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RFbmFibGVkRm9y
Q29udGV4dFRlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RFbmFibGVkRm9yQ29udGV4dF9UZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRDb25zdHJ1
Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVkRm9yQ29udGV4dD46OnNldDxzZXRKU1Rlc3RFbmFi
bGVkRm9yQ29udGV4dFRlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0U3Vi
T2JqRW5hYmxlZEZvckNvbnRleHQiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEVu
YWJsZWRGb3JDb250ZXh0Pjo6c2V0PHNldEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0X1Rlc3RTdWJP
YmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHQi
KTsKIH0KIAogSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0RW5hYmxlZEZvckNvbnRleHQ6OnN1YnNw
YWNlRm9ySW1wbChKU0M6OlZNJiB2bSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1
Y3Rvci5jcHAJKHJldmlzaW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTI1LDEwICsxMjUsMTAgQEAgdGVtcGxhdGU8PiBUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6SW5p
dCBjbwogCiBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEV2ZW50Q29uc3RydWN0b3JD
b25zdHJ1Y3Rvcik7CiBKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEV2ZW50Q29u
c3RydWN0b3JDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEV2
ZW50Q29uc3RydWN0b3JBdHRyMSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEV2
ZW50Q29uc3RydWN0b3JBdHRyMik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEV2
ZW50Q29uc3RydWN0b3JfYXR0cjEpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RF
dmVudENvbnN0cnVjdG9yX2F0dHIyKTsKICNpZiBFTkFCTEUoU1BFQ0lBTF9FVkVOVCkKLUpTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIzKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RXZlbnRDb25zdHJ1Y3Rvcl9hdHRyMyk7CiAjZW5k
aWYKIAogY2xhc3MgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZSBmaW5hbCA6IHB1Ymxp
YyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewpAQCAtMjA5LDEwICsyMDksMTAgQEAgdGVtcGxhdGU8
PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RXZlbnRDbwogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZh
bHVlIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAg
ICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVj
dG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiYXR0
cjEiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ckF0dHIxKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oMCkgfSB9LAotICAgIHsgImF0dHIyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3Vz
dG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJhdHRyMSIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RFdmVudENvbnN0cnVjdG9yX2F0dHIx
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
MCkgfSB9LAorICAgIHsgImF0dHIyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdEV2ZW50Q29uc3RydWN0b3JfYXR0cjIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAjaWYgRU5BQkxFKFNQRUNJQUxfRVZF
TlQpCi0gICAgeyAiYXR0cjMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
ciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
RXZlbnRDb25zdHJ1Y3RvckF0dHIzKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgImF0dHIzIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01B
dHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEV2ZW50Q29uc3RydWN0b3JfYXR0cjMpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAj
ZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKQEAgLTI4
Niw3ICsyODYsNyBAQCBKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0RXZlbnRDCiAg
ICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25z
dHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1zdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIxR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yJiB0aGlzT2Jq
ZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JfYXR0cjFH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEV2ZW50Q29u
c3RydWN0b3ImIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTI5NCwxMiArMjk0LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RFdmVudENvbnN0cnUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHIx
KCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RFdmVudENvbnN0cnVj
dG9yQXR0cjEsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdEV2ZW50Q29uc3RydWN0b3JfYXR0cjEsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewot
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcj46OmdldDxqc1Rl
c3RFdmVudENvbnN0cnVjdG9yQXR0cjFHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhdHRyMSIpOworICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcj46OmdldDxqc1Rlc3RFdmVu
dENvbnN0cnVjdG9yX2F0dHIxR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYXR0cjEiKTsKIH0KIAotc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMkdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvciYgdGhp
c09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yX2F0
dHIyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RFdmVu
dENvbnN0cnVjdG9yJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0zMDcsMTMgKzMwNywxMyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0RXZlbnRDb25zdHJ1CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5h
dHRyMigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0RXZlbnRDb25z
dHJ1Y3RvckF0dHIyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RFdmVudENvbnN0cnVjdG9yX2F0dHIyLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
IHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEV2ZW50Q29uc3RydWN0b3I+OjpnZXQ8
anNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYXR0cjIiKTsKKyAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEV2ZW50Q29uc3RydWN0b3I+OjpnZXQ8anNUZXN0
RXZlbnRDb25zdHJ1Y3Rvcl9hdHRyMkdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImF0dHIyIik7CiB9CiAKICNp
ZiBFTkFCTEUoU1BFQ0lBTF9FVkVOVCkKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFdmVu
dENvbnN0cnVjdG9yQXR0cjNHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTVGVzdEV2ZW50Q29uc3RydWN0b3ImIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0RXZlbnRDb25zdHJ1Y3Rvcl9hdHRyM0dldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvciYgdGhpc09iamVjdCkK
IHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzIxLDkgKzMy
MSw5IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnUKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHIzKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjMsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEV2ZW50Q29uc3RydWN0b3Jf
YXR0cjMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcj46OmdldDxqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjNH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJhdHRyMyIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
RXZlbnRDb25zdHJ1Y3Rvcj46OmdldDxqc1Rlc3RFdmVudENvbnN0cnVjdG9yX2F0dHIzR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiYXR0cjMiKTsKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRh
cmdldC5jcHAJKHJldmlzaW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUw
LDcgKzUwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlvbkl0
ZW0pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RFdmVudFRhcmdldFByb3RvdHlw
ZUZ1bmN0aW9uX2l0ZW0pOwogCiAvLyBBdHRyaWJ1dGVzCiAKQEAgLTExMCw3ICsxMTAsNyBAQCB0
ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RFdmVudFRhCiBzdGF0aWMgY29uc3QgSGFz
aFRhYmxlVmFsdWUgSlNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsK
ICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3Rv
ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IpIH0gfSwKLSAgICB7ICJpdGVtIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RFdmVudFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uSXRlbSksIChpbnRwdHJfdCkgKDEpIH0gfSwK
KyAgICB7ICJpdGVtIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uX2l0ZW0pLCAo
aW50cHRyX3QpICgxKSB9IH0sCiB9OwogCiBjb25zdCBDbGFzc0luZm8gSlNUZXN0RXZlbnRUYXJn
ZXRQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RFdmVudFRhcmdldCIsICZCYXNlOjpzX2luZm8s
IG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0RXZlbnRUYXJnZXRQ
cm90b3R5cGUpIH07CkBAIC0yNDksNyArMjQ5LDcgQEAgSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdEV2ZW50VAogICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUp
KTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50VGFy
Z2V0UHJvdG90eXBlRnVuY3Rpb25JdGVtQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVy
YXRpb248SlNUZXN0RXZlbnRUYXJnZXQ+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBl
RnVuY3Rpb25faXRlbUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVz
dEV2ZW50VGFyZ2V0Pjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNjQsOSArMjY0LDkgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIGltcGwuaXRlbShX
VEZNb3ZlKGluZGV4KSkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RF
dmVudFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uSXRlbSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlvbl9pdGVtLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEV2ZW50VGFyZ2V0Pjo6Y2FsbDxqc1Rlc3RFdmVu
dFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uSXRlbUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAiaXRlbSIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0RXZlbnRU
YXJnZXQ+OjpjYWxsPGpzVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25faXRlbUJvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaXRlbSIpOwogfQogCiBKU0M6Oklz
b1N1YnNwYWNlKiBKU1Rlc3RFdmVudFRhcmdldDo6c3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZt
KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4
Y2VwdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAJKHJldmlzaW9uIDI2ODU0NykKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIEpT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IpOwogSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3Rvcik7Ci1K
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEV4Y2VwdGlvbk5hbWUpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RFeGNlcHRpb25fbmFtZSk7CiAKIGNsYXNzIEpTVGVzdEV4
Y2VwdGlvblByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3Qgewog
cHVibGljOgpAQCAtMTA0LDcgKzEwNCw3IEBAIHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdEV4Y2VwdGkKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RFeGNlcHRpb25Q
cm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3Rvcikg
fSB9LAotICAgIHsgIm5hbWUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
ciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
RXhjZXB0aW9uTmFtZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJuYW1lIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUp
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdEV4Y2VwdGlvbl9uYW1lKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogfTsKIAogY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdEV4Y2VwdGlvbiIs
ICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNU
ZXN0RXhjZXB0aW9uUHJvdG90eXBlKSB9OwpAQCAtMTgxLDcgKzE4MSw3IEBAIEpTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RFeGNlcHQKICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXRE
aXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZFZhbHVlKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFeGNlcHRp
b25OYW1lR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RF
eGNlcHRpb24mIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RXhjZXB0
aW9uX25hbWVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVz
dEV4Y2VwdGlvbiYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTg5LDkgKzE4OSw5IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RFeGNlcHRpb25OYW0KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm5hbWUo
KSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEV4Y2VwdGlvbk5hbWUs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEV4
Y2VwdGlvbl9uYW1lLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEV4Y2VwdGlvbj46OmdldDxqc1Rlc3RFeGNlcHRpb25OYW1lR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAibmFtZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RXhjZXB0aW9u
Pjo6Z2V0PGpzVGVzdEV4Y2VwdGlvbl9uYW1lR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibmFtZSIpOwogfQog
CiBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3RFeGNlcHRpb246OnN1YnNwYWNlRm9ySW1wbChKU0M6
OlZNJiB2bSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAJ
KHJldmlzaW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgs
NyArNDgsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3Rvcik7CiBKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3Rvcik7Ci1K
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVBU2VjcmV0
QXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZV9hU2VjcmV0QXR0cmlidXRlKTsKIAogY2xhc3MgSlNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVi
bGljOgpAQCAtMTA0LDcgKzEwNCw3IEBAIHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVz
dEdlbmVyYXQKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7CiAgICAgeyAiY29uc3RydWN0b3IiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcikgfSB9LAotICAgIHsgImFTZWNyZXRBdHRyaWJ1dGUi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkg
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZUFTZWNyZXRBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiYVNlY3JldEF0dHJpYnV0ZSIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlX2FTZWNy
ZXRBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPigwKSB9IH0sCiB9OwogCiBjb25zdCBDbGFzc0luZm8gSlNUZXN0R2VuZXJhdGVJ
c1JlYWNoYWJsZVByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUi
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpT
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGUpIH07CkBAIC0xOTEsNyArMTkxLDcgQEAg
SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdlbmVyYQogICAgIHJldHVybiBwcm90
b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVBU2VjcmV0QXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlJiB0aGlz
T2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVf
YVNlY3JldEF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2
bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk5LDkgKzE5OSw5IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RHZW5lcmF0ZUlzUmUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLmFTZWNyZXRBdHRyaWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVBU2VjcmV0QXR0cmlidXRlLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlX2FTZWNyZXRBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewot
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZT46OmdldDxq
c1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQVNlY3JldEF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ImFTZWNyZXRBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGU+OjpnZXQ8anNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZV9hU2VjcmV0QXR0
cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYVNlY3JldEF0dHJpYnV0ZSIpOwogfQogCiBKU0M6Oklz
b1N1YnNwYWNlKiBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjpzdWJzcGFjZUZvckltcGwoSlND
OjpWTSYgdm0pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0R2xvYmFsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNwcAkocmV2aXNpb24gMjY4
NTQ3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEds
b2JhbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNiwxNjkgKzEyNiwxNjkgQEAgdXNp
bmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblJlZ3VsYXJPcGVyYXRpb24p
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1
bmN0aW9uX3JlZ3VsYXJPcGVyYXRpb24pOwogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1KU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25F
bmFibGVkQXRSdW50aW1lT3BlcmF0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl9lbmFibGVkQXRSdW50aW1lT3BlcmF0aW9u
KTsKICNlbmRpZgogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1KU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25FbmFibGVkQXRSdW50
aW1lT3BlcmF0aW9uU3RhdGljKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0R2xv
YmFsT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbl9lbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uU3Rh
dGljKTsKICNlbmRpZgotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmpl
Y3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3JsZCk7Ci1KU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5T
cGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZCk7Ci1KU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVj
aWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlc0VuYWJsZWQpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uX2VuYWJsZWRJblNwZWNp
ZmljV29ybGQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJ
bnN0YW5jZUZ1bmN0aW9uX2VuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVF
bmFibGVkKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0R2xvYmFsT2JqZWN0SW5z
dGFuY2VGdW5jdGlvbl9lbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlc0Vu
YWJsZWQpOwogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1KU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25UZXN0UHJpdmF0ZUZ1bmN0aW9u
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VG
dW5jdGlvbl90ZXN0UHJpdmF0ZUZ1bmN0aW9uKTsKICNlbmRpZgotSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0
UmVzdWx0KTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0R2xvYmFsT2JqZWN0SW5z
dGFuY2VGdW5jdGlvbkdldFNlY3JldEJvb2xlYW4pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uX2NhbGN1bGF0ZVNlY3JldFJlc3Vs
dCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNl
RnVuY3Rpb25fZ2V0U2VjcmV0Qm9vbGVhbik7CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLUpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlv
blRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25fdGVzdEZlYXR1cmVHZXRTZWNyZXRC
b29sZWFuKTsKICNlbmRpZgogCiAvLyBBdHRyaWJ1dGVzCiAKIEpTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IpOwogSlNDX0RFQ0xBUkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRyaWJ1dGUpOwotSlNDX0RF
Q0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RSZWd1bGFyQXR0cmlidXRl
KTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5k
UHJpdmF0ZUF0dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEds
b2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUpOwotI2lmIEVOQUJMRShURVNUX0ZF
QVRVUkUpCi1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFB1Ymxp
Y0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJp
YnV0ZSk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKTsK
LUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0RW5hYmxlZEF0
UnVudGltZUF0dHJpYnV0ZSk7Ci0jZW5kaWYKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1
Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0
cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVz
dENhbGxUcmFjZXJDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfcmVndWxhckF0dHJpYnV0ZSk7CitKU0Nf
REVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9yZWd1bGFyQXR0cmli
dXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X3B1Ymxp
Y0FuZFByaXZhdGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RHbG9iYWxPYmplY3RfcHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZSk7CisjaWYgRU5BQkxFKFRF
U1RfRkVBVFVSRSkKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0
X3B1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9wdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9u
YWxBdHRyaWJ1dGUpOworI2VuZGlmCisjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKK0pTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X2VuYWJsZWRBdFJ1bnRpbWVBdHRy
aWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3Rf
ZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSk7CisjZW5kaWYKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RDRVJlYWN0
aW9uc0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFs
T2JqZWN0X1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdENFUmVhY3Rpb25zU3Ry
aW5naWZpZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEds
b2JhbE9iamVjdF9UZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3Ip
OwogI2lmIEVOQUJMRShURVNUX0NPTkRJVElPTkFMKQotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbGJhY2tJbnRlcmZhY2VDb25zdHJ1Y3Rvcik7Ci1K
U0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsYmFj
a0ludGVyZmFjZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
R2xvYmFsT2JqZWN0X1Rlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RDYWxsYmFja0ludGVy
ZmFjZUNvbnN0cnVjdG9yKTsKICNlbmRpZgotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rv
cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RD
bGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJVENvbnN0cnVjdG9yKTsKLUpT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJVENv
bnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0
VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IpOwotSlNDX0RF
Q0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNP
TkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9y
KTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERl
ZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVj
dG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9y
KTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERv
bWFpblNlY3VyaXR5Q29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKTsKLUpTQ19ERUNM
QVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29uc3RydWN0
b3JDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IpOwotSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXhjZXB0aW9uQ29u
c3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKTsKLUpT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEdlbmVyYXRl
SXNSZWFjaGFibGVDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RHbG9iYWxPYmplY3RDb25zdHJ1
Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmll
ckNvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKTsKLUpTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0
cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUxlYWRpbmdVbmRl
cnNjb3JlQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3Rvcik7Ci1K
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJdGVyYWJsZUNv
bnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcik7Ci1K
U0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0
aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yKTsKLUpT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZh
Y3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdEF1ZGlvQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElu
c0NvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3Ip
OwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFw
TGlrZUNvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFs
T2JqZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rvcik7Ci1K
U0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVu
dGlmaWVyQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0
b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik7Ci1KU0NfREVD
TEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJ
ZGVudGlmaWVyQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25z
dHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZp
ZXJDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKTsKLUpTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRl
clRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1
Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVk
R2V0dGVyQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rvcik7
Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdl
dHRlckNhbGxXaXRoQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKTsKLUpT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVy
Tm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik7
Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdl
dHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0
cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJD
b25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik7
Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1l
ZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNv
bnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rvcik7Ci1KU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJ
bmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
ckFuZFNldHRlckNvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25z
dHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOwot
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5m
b3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKTsK
LUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnNDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2Jh
bE9iamVjdF9UZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcik7CitK
U0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0Q2xhc3NX
aXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0RE9NSklUQ29uc3RydWN0b3IpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdERPTUpJVENvbnN0
cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rl
c3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3REZWZhdWx0VG9KU09O
SW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9y
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3Ry
dWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3Rf
VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1
Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9U
ZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RFdmVudENv
bnN0cnVjdG9yQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RH
bG9iYWxPYmplY3RfVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0
b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdEV4
Y2VwdGlvbkNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
R2xvYmFsT2JqZWN0X1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0
cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0
X1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RHbG9i
YWxPYmplY3RDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEds
b2JhbE9iamVjdF9UZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNv
bnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0X1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0SW5kZXhlZFNldHRl
cldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0
cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rl
c3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5k
ZXJzY29yZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xv
YmFsT2JqZWN0X1Rlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RKU0J1aWx0aW5D
b25zdHJ1Y3RvckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0X1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RMZWdhY3lGYWN0
b3J5RnVuY3Rpb25Db25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdEdsb2JhbE9iamVjdF9UZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfQXVkaW9Db25zdHJ1
Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9B
dWRpb0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFs
T2JqZWN0X1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnNDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEds
b2JhbE9iamVjdF9UZXN0TWFwTGlrZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RNYXBMaWtlQ29uc3RydWN0b3IpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE1hcExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFs
T2JqZWN0X1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik7
CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
clRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5n
RXhjZXB0aW9uQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RH
bG9iYWxPYmplY3RfVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3Ry
dWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3Rf
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkRGVsZXRl
ck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rv
cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFt
ZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWREZWxldGVyVGhyb3dpbmdF
eGNlcHRpb25Db25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEds
b2JhbE9iamVjdF9UZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik7CitK
U0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRE
ZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJD
b25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9i
amVjdF9UZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rvcik7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRHZXR0ZXJD
YWxsV2l0aENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkR2V0dGVyTm9J
ZGVudGlmaWVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkR2V0
dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0
cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rl
c3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmll
ckNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2Jq
ZWN0X1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVj
dG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rl
c3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRH
ZXR0ZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEds
b2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0aElu
ZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVC
dWlsdEluc0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29u
c3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3Rf
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9y
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3Rvcik7CitK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElu
c0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFs
T2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOwogI2lmIEVOQUJMRShDb25kaXRpb25E
ZXJpdmVkKQotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVj
dG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RP
cGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVj
dG9yKTsKICNlbmRpZgotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKTsKLUpT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3Rv
cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RQ
bHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3Rvcik7Ci1KU0NfREVD
TEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seU1hcExp
a2VDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3Rv
cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RSZXBv
cnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3Rv
cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RQbHVnaW5J
bnRlcmZhY2VDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEds
b2JhbE9iamVjdF9UZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdFJlYWRPbmx5TWFwTGlrZUNv
bnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0
X1Rlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3Ip
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFJlcG9y
dEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3Rv
cik7CiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQotSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29u
c3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3Rf
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcik7CiAjZW5kaWYKLUpTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VDb25zdHJ1Y3Rvcik7Ci1KU0Nf
REVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29u
c3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKTsKLUpTQ19ERUNM
QVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKTsKLUpTQ19ERUNM
QVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQ29u
c3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckFub255
bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3Rvcik7
Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJp
bmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRl
ZEFzQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3Ip
OwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5n
aWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25O
YW1lZFRvU3RyaW5nQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9y
KTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0
cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJp
YnV0ZUNvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IpOwot
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0VHlwZWRlZnND
b25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTZXRMaWtlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdFNldExpa2VDb25zdHJ1Y3Rv
cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0U2V0
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RHbG9iYWxPYmplY3RfVGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdFN0cmluZ2lmaWVyQ29uc3Ry
dWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVz
dFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdFN0cmluZ2lmaWVyQW5vbnlt
b3VzT3BlcmF0aW9uQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RHbG9iYWxPYmplY3RfVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3Rvcik7
CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0U3Ry
aW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVu
dGVkQXNDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEds
b2JhbE9iamVjdF9UZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0
b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFN0
cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJpbmdpZmllck9wZXJh
dGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0
cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0
X1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFN0cmluZ2lmaWVyUmVhZFdy
aXRlQXR0cmlidXRlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RHbG9iYWxPYmplY3RfVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3Ry
dWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVz
dFR5cGVkZWZzQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RHbG9iYWxPYmplY3RfVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IpOwogCiB1c2luZyBKU1Rlc3RH
bG9iYWxPYmplY3RET01Db25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3Rh
YmxlPEpTVGVzdEdsb2JhbE9iamVjdD47CiAKQEAgLTU2Nyw4NyArNTY3LDg3IEBAIHN0YXRpYyBj
b25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1QKIAogc3RhdGljIGNvbnN0IEhhc2hUYWJs
ZVZhbHVlIEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlVmFsdWVzW10gPQogewotICAgIHsgInJlZ3Vs
YXJBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUp
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRyaWJ1dGUpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9i
YWxPYmplY3RSZWd1bGFyQXR0cmlidXRlKSB9IH0sCi0gICAgeyAicHVibGljQW5kUHJpdmF0ZUF0
dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpD
dXN0b21BY2Nlc3NvciksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0
ZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUp
IH0gfSwKKyAgICB7ICJyZWd1bGFyQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfcmVndWxhckF0
dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdEdsb2JhbE9iamVjdF9yZWd1bGFyQXR0cmlidXRlKSB9IH0sCisgICAg
eyAicHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFs
T2JqZWN0X3B1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfcHVi
bGljQW5kUHJpdmF0ZUF0dHJpYnV0ZSkgfSB9LAogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi0g
ICAgeyAicHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGUp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGUp
IH0gfSwKKyAgICB7ICJwdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGUiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3Ip
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9wdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxB
dHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfcHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFs
QXR0cmlidXRlKSB9IH0sCiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9
IH0sCiAjZW5kaWYKLSAgICB7ICJUZXN0Q0VSZWFjdGlvbnMiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dENFUmVhY3Rpb25zQ29uc3RydWN0b3IpIH0gfSwKLSAgICB7ICJUZXN0Q0VSZWFjdGlvbnNTdHJp
bmdpZmllciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zU3RyaW5n
aWZpZXJDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyQ29uc3RydWN0b3IpIH0gfSwKLSAgICB7ICJUZXN0Q2FsbFRyYWNlciIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IpIH0gfSwKKyAgICB7ICJUZXN0Q0VSZWFj
dGlvbnMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0Q0VSZWFjdGlvbnNDb25zdHJ1
Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvcikgfSB9
LAorICAgIHsgIlRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9i
YWxPYmplY3RfVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEds
b2JhbE9iamVjdF9UZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKSB9IH0sCisg
ICAgeyAiVGVzdENhbGxUcmFjZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0Q2Fs
bFRyYWNlckNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RDYWxsVHJhY2VyQ29u
c3RydWN0b3IpIH0gfSwKICNpZiBFTkFCTEUoVEVTVF9DT05ESVRJT05BTCkKLSAgICB7ICJUZXN0
Q2FsbGJhY2tJbnRlcmZhY2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsYmFj
a0ludGVyZmFjZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxiYWNrSW50
ZXJmYWNlQ29uc3RydWN0b3IpIH0gfSwKKyAgICB7ICJUZXN0Q2FsbGJhY2tJbnRlcmZhY2UiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0Q2FsbGJhY2tJbnRlcmZhY2VDb25zdHJ1Y3Rv
ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0Q2FsbGJhY2tJbnRlcmZhY2VDb25zdHJ1Y3Rvcikg
fSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlm
Ci0gICAgeyAiVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rv
ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNv
bnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdERPTUpJVCIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFs
T2JqZWN0VGVzdERPTUpJVENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJ
VENvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVy
aXRhbmNlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluZGly
ZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0
VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdERl
ZmF1bHRUb0pTT05Jbmhlcml0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVs
dFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0
VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdERlZmF1bHRUb0pTT05J
bmhlcml0RmluYWwiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09O
SW5oZXJpdEZpbmFsQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdERvbWFpblNlY3Vy
aXR5Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1
Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKSB9
IH0sCi0gICAgeyAiVGVzdEV2ZW50Q29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdEV2ZW50VGFy
Z2V0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3Rv
ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKSB9IH0sCi0g
ICAgeyAiVGVzdEV4Y2VwdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0VGVzdEV4Y2Vw
dGlvbkNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV4Y2VwdGlvbkNvbnN0cnVj
dG9yKSB9IH0sCi0gICAgeyAiVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKSB9IH0sCi0gICAg
eyAiVGVzdEdsb2JhbE9iamVjdCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0VGVzdEdsb2Jh
bE9iamVjdENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEdsb2JhbE9iamVjdENv
bnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmll
ckNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbkNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdEluZGV4ZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVz
dEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKSB9IH0sCi0gICAg
eyAiVGVzdEl0ZXJhYmxlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SXRlcmFibGVD
b25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKSB9
IH0sCi0gICAgeyAiVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAi
VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0VGVz
dExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiQXVkaW8iLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdEF1ZGlvQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxP
YmplY3RBdWRpb0NvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0
SW5zQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5T3ZlcnJpZGVCdWls
dEluc0NvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdE1hcExpa2UiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TWFwTGlrZUNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdE1hcExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAi
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllciIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9y
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmll
ckNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93
aW5nRXhjZXB0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKSB9
IH0sCi0gICAgeyAiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXJDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdE5hbWVkRGVs
ZXRlck5vSWRlbnRpZmllciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVs
ZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
RGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdE5hbWVkRGVs
ZXRlclRocm93aW5nRXhjZXB0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKSB9IH0sCi0gICAg
eyAiVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKSB9IH0s
Ci0gICAgeyAiVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rv
ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNv
bnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGgiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKSB9IH0s
Ci0gICAgeyAiVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKSB9IH0sCi0g
ICAgeyAiVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKSB9IH0s
Ci0gICAgeyAiVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKSB9IH0sCi0g
ICAgeyAiVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVj
dG9yKSB9IH0sCi0gICAgeyAiVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0
b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0
cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVy
Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhl
ZEdldHRlckNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJBbmRTZXR0ZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9y
KSB9IH0sCi0gICAgeyAiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVy
cmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcyIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVy
dGllc0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExl
Z2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3Ry
dWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3Jn
ZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKSB9IH0s
CisgICAgeyAiVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RHbG9iYWxPYmplY3RfVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0
b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9y
Q29uc3RydWN0b3IpIH0gfSwKKyAgICB7ICJUZXN0RE9NSklUIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9i
YWxPYmplY3RfVGVzdERPTUpJVENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RE
T01KSVRDb25zdHJ1Y3RvcikgfSB9LAorICAgIHsgIlRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJ
bmhlcml0YW5jZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3REZWZhdWx0VG9KU09O
SW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RE
ZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKSB9IH0sCisgICAgeyAi
VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVz
dERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVz
dERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IpIH0gfSwKKyAgICB7ICJUZXN0RGVmYXVs
dFRvSlNPTkluaGVyaXRGaW5hbCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3REZWZh
dWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVz
dERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvcikgfSB9LAorICAgIHsgIlRlc3RE
b21haW5TZWN1cml0eSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3REb21haW5TZWN1
cml0eUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3REb21haW5TZWN1cml0eUNv
bnN0cnVjdG9yKSB9IH0sCisgICAgeyAiVGVzdEV2ZW50Q29uc3RydWN0b3IiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdEdsb2JhbE9iamVjdF9UZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0
R2xvYmFsT2JqZWN0X1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IpIH0gfSwKKyAgICB7
ICJUZXN0RXZlbnRUYXJnZXQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0RXZlbnRU
YXJnZXRDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0RXZlbnRUYXJnZXRDb25z
dHJ1Y3RvcikgfSB9LAorICAgIHsgIlRlc3RFeGNlcHRpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2Jh
bE9iamVjdF9UZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVz
dEV4Y2VwdGlvbkNvbnN0cnVjdG9yKSB9IH0sCisgICAgeyAiVGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNv
bnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29u
c3RydWN0b3IpIH0gfSwKKyAgICB7ICJUZXN0R2xvYmFsT2JqZWN0Iiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RH
bG9iYWxPYmplY3RfVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0X1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcikgfSB9LAorICAgIHsgIlRlc3RJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0
SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKSB9IH0sCisgICAgeyAiVGVzdElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0
X1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEds
b2JhbE9iamVjdF9UZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3Ip
IH0gfSwKKyAgICB7ICJUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RHbG9iYWxPYmplY3RfVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVj
dG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJD
b25zdHJ1Y3RvcikgfSB9LAorICAgIHsgIlRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZSIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29y
ZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5k
ZXJzY29yZUNvbnN0cnVjdG9yKSB9IH0sCisgICAgeyAiVGVzdEl0ZXJhYmxlIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RHbG9iYWxPYmplY3RfVGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxP
YmplY3RfVGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IpIH0gfSwKKyAgICB7ICJUZXN0SlNCdWlsdGlu
Q29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0SlNCdWlsdGluQ29u
c3RydWN0b3JDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0SlNCdWlsdGluQ29u
c3RydWN0b3JDb25zdHJ1Y3RvcikgfSB9LAorICAgIHsgIlRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rp
b24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9u
Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlv
bkNvbnN0cnVjdG9yKSB9IH0sCisgICAgeyAiQXVkaW8iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9i
amVjdF9BdWRpb0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0X0F1ZGlvQ29uc3RydWN0
b3IpIH0gfSwKKyAgICB7ICJUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucyIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0R2xvYmFsT2JqZWN0X1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRK
U1Rlc3RHbG9iYWxPYmplY3RfVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rvcikg
fSB9LAorICAgIHsgIlRlc3RNYXBMaWtlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVz
dE1hcExpa2VDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0TWFwTGlrZUNvbnN0
cnVjdG9yKSB9IH0sCisgICAgeyAiVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IpIH0gfSwKKyAgICB7ICJUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xv
YmFsT2JqZWN0X1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rv
cikgfSB9LAorICAgIHsgIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
biIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKSB9IH0sCisgICAg
eyAiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29u
c3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyQ29uc3RydWN0b3IpIH0gfSwKKyAgICB7ICJUZXN0TmFtZWREZWxldGVyTm9J
ZGVudGlmaWVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkRGVsZXRlck5v
SWRlbnRpZmllckNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZERlbGV0
ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcikgfSB9LAorICAgIHsgIlRlc3ROYW1lZERlbGV0ZXJU
aHJvd2luZ0V4Y2VwdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZERl
bGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rl
c3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKSB9IH0sCisgICAgeyAi
VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmpl
Y3RfVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9i
YWxPYmplY3RfVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpIH0gfSwK
KyAgICB7ICJUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dEdsb2JhbE9iamVjdF9UZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rv
ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJD
b25zdHJ1Y3RvcikgfSB9LAorICAgIHsgIlRlc3ROYW1lZEdldHRlckNhbGxXaXRoIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3Rvciks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKSB9
IH0sCisgICAgeyAiVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RH
bG9iYWxPYmplY3RfVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rl
c3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpIH0g
fSwKKyAgICB7ICJUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllciIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRK
U1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rv
cikgfSB9LAorICAgIHsgIlRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllciIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0
SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9y
KSB9IH0sCisgICAgeyAiVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0
cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0
aW9uQ29uc3RydWN0b3IpIH0gfSwKKyAgICB7ICJUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlm
aWVyQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0aElk
ZW50aWZpZXJDb25zdHJ1Y3RvcikgfSB9LAorICAgIHsgIlRlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRT
ZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKSB9IH0sCisgICAgeyAiVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9i
amVjdF9UZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9y
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
c2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5k
U2V0dGVyQ29uc3RydWN0b3IpIH0gfSwKKyAgICB7ICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
T3ZlcnJpZGVCdWlsdElucyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNl
dHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxP
YmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rv
cikgfSB9LAorICAgIHsgIlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3Bl
cnRpZXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3Rf
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9y
KSB9IH0sCisgICAgeyAiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVy
dGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVj
dF9UZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5
T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1l
ZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1
aWx0SW5zQ29uc3RydWN0b3IpIH0gfSwKICNpZiBFTkFCTEUoQ29uZGl0aW9uRGVyaXZlZCkKLSAg
ICB7ICJUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IpIH0gfSwKKyAgICB7ICJUZXN0T3Bl
cmF0aW9uQ29uZGl0aW9uYWwiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0T3BlcmF0
aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0T3BlcmF0
aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvcikgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50
cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCi0gICAgeyAiVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnNXaXRoU2VxdWVuY2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdFRlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKSB9IH0s
Ci0gICAgeyAiVGVzdFBsdWdpbkludGVyZmFjZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0
VGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFBs
dWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdFJlYWRPbmx5TWFwTGlr
ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVj
dG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKSB9
IH0sCi0gICAgeyAiVGVzdFJlYWRPbmx5U2V0TGlrZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdFJlcG9ydEV4dHJh
TWVtb3J5Q29zdCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlcG9ydEV4dHJhTWVt
b3J5Q29zdENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlcG9ydEV4dHJhTWVt
b3J5Q29zdENvbnN0cnVjdG9yKSB9IH0sCisgICAgeyAiVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNXaXRoU2VxdWVuY2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0
X1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IpIH0gfSwK
KyAgICB7ICJUZXN0UGx1Z2luSW50ZXJmYWNlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3Rf
VGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RQ
bHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvcikgfSB9LAorICAgIHsgIlRlc3RSZWFkT25seU1hcExp
a2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3Ry
dWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9y
KSB9IH0sCisgICAgeyAiVGVzdFJlYWRPbmx5U2V0TGlrZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFs
T2JqZWN0X1Rlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2JhbE9iamVj
dF9UZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IpIH0gfSwKKyAgICB7ICJUZXN0UmVwb3J0
RXh0cmFNZW1vcnlDb3N0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFJlcG9ydEV4
dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RSZXBvcnRF
eHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvcikgfSB9LAogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8
fCBFTkFCTEUoQ29uZGl0aW9uMikKLSAgICB7ICJUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IpIH0gfSwKKyAgICB7ICJUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFs
T2JqZWN0X1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcikgfSB9
LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCi0g
ICAgeyAiVGVzdFNldExpa2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtl
Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKSB9
IH0sCi0gICAgeyAiVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29u
c3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc0NvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdFN0cmluZ2lmaWVyIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdFN0
cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvciksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKSB9IH0s
Ci0gICAgeyAiVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24iLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEds
b2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKSB9
IH0sCi0gICAgeyAiVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcyIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRB
c0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
SW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdFN0cmluZ2lmaWVyT3Bl
cmF0aW9uTmFtZWRUb1N0cmluZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yKSB9IH0s
Ci0gICAgeyAiVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3Ip
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0
cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1
dGVDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRXcml0
ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdFR5cGVkZWZzIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAicmVndWxhck9wZXJh
dGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5j
dGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5j
dGlvbj4oanNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblJlZ3VsYXJPcGVyYXRpb24p
LCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAiVGVzdFNldExpa2UiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dEdsb2JhbE9iamVjdF9UZXN0U2V0TGlrZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0
X1Rlc3RTZXRMaWtlQ29uc3RydWN0b3IpIH0gfSwKKyAgICB7ICJUZXN0U2V0TGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9ucyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTZXRMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3Rf
VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcikgfSB9LAorICAg
IHsgIlRlc3RTdHJpbmdpZmllciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJp
bmdpZmllckNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJpbmdpZmllckNv
bnN0cnVjdG9yKSB9IH0sCisgICAgeyAiVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9u
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3Bl
cmF0aW9uQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdFN0cmluZ2lmaWVyQW5v
bnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IpIH0gfSwKKyAgICB7ICJUZXN0U3RyaW5naWZpZXJO
YW1lZE9wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJpbmdpZmll
ck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdFN0cmlu
Z2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcikgfSB9LAorICAgIHsgIlRlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEdsb2JhbE9iamVjdF9U
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RH
bG9iYWxPYmplY3RfVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVj
dG9yKSB9IH0sCisgICAgeyAiVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZyIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVk
VG9TdHJpbmdDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0U3RyaW5naWZpZXJP
cGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IpIH0gfSwKKyAgICB7ICJUZXN0U3RyaW5n
aWZpZXJSZWFkT25seUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RT
dHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RfVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3RvcikgfSB9LAorICAg
IHsgIlRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0R2xv
YmFsT2JqZWN0X1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0
SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0
cnVjdG9yKSB9IH0sCisgICAgeyAiVGVzdFR5cGVkZWZzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RHbG9iYWxP
YmplY3RfVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdFR5
cGVkZWZzQ29uc3RydWN0b3IpIH0gfSwKKyAgICB7ICJyZWd1bGFyT3BlcmF0aW9uIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RH
bG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uX3JlZ3VsYXJPcGVyYXRpb24pLCAoaW50cHRyX3Qp
ICgxKSB9IH0sCiB9OwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdEdsb2JhbE9iamVj
dFRhYmxlID0geyA2NSwgMjU1LCB0cnVlLCBKU1Rlc3RHbG9iYWxPYmplY3Q6OmluZm8oKSwgSlNU
ZXN0R2xvYmFsT2JqZWN0VGFibGVWYWx1ZXMsIEpTVGVzdEdsb2JhbE9iamVjdFRhYmxlSW5kZXgg
fTsKQEAgLTY1Niw3ICs2NTYsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdEdsb2Jh
bE9iamVjCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0R2xvYmFsT2JqZWN0Q29u
c3RydWN0b3JUYWJsZVZhbHVlc1tdID0KIHsKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotICAg
IHsgImVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWMiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEdsb2JhbE9iamVjdENv
bnN0cnVjdG9yRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uU3RhdGljKSwgKGludHB0
cl90KSAoMSkgfSB9LAorICAgIHsgImVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWMiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25fZW5hYmxlZEF0UnVudGltZU9wZXJh
dGlvblN0YXRpYyksIChpbnRwdHJfdCkgKDEpIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0lu
dHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgpAQCAtNzE2LDQxICs3MTYsNDEgQEAgdm9pZCBK
U1Rlc3RHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKAogCiAjaWYgRU5BQkxFKFRFU1RfRkVB
VFVSRSkKICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50
ZXN0RmVhdHVyZUVuYWJsZWQoKSkKLSAgICAgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0s
IHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1l
cygpLmVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVQdWJsaWNOYW1lKCksIEN1c3RvbUdldHRlclNl
dHRlcjo6Y3JlYXRlKHZtLCBqc1Rlc3RHbG9iYWxPYmplY3RFbmFibGVkQXRSdW50aW1lQXR0cmli
dXRlLCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKSwgYXR0
cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpKSk7CisgICAgICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vz
c29yKHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWls
dGluTmFtZXMoKS5lbmFibGVkQXRSdW50aW1lQXR0cmlidXRlUHVibGljTmFtZSgpLCBDdXN0b21H
ZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwganNUZXN0R2xvYmFsT2JqZWN0X2VuYWJsZWRBdFJ1bnRp
bWVBdHRyaWJ1dGUsIHNldEpTVGVzdEdsb2JhbE9iamVjdF9lbmFibGVkQXRSdW50aW1lQXR0cmli
dXRlKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpKSk7CiAjZW5kaWYKLSAgICBwdXREaXJl
Y3RDdXN0b21BY2Nlc3Nvcih2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGll
bnREYXRhKS0+YnVpbHRpbk5hbWVzKCkucHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZVByaXZhdGVO
YW1lKCksIEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBqc1Rlc3RHbG9iYWxPYmplY3RQ
dWJsaWNBbmRQcml2YXRlQXR0cmlidXRlLCBudWxscHRyKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVy
ZShKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkpKTsKKyAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgc3RhdGlj
X2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkucHVi
bGljQW5kUHJpdmF0ZUF0dHJpYnV0ZVByaXZhdGVOYW1lKCksIEN1c3RvbUdldHRlclNldHRlcjo6
Y3JlYXRlKHZtLCBqc1Rlc3RHbG9iYWxPYmplY3RfcHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZSwg
bnVsbHB0ciksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CiAjaWYgRU5B
QkxFKFRFU1RfRkVBVFVSRSkKLSAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwgc3RhdGlj
X2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkucHVi
bGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlUHJpdmF0ZU5hbWUoKSwgQ3VzdG9tR2V0
dGVyU2V0dGVyOjpjcmVhdGUodm0sIGpzVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVD
b25kaXRpb25hbEF0dHJpYnV0ZSwgbnVsbHB0ciksIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5KSk7CisgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIHN0YXRpY19jYXN0
PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLnB1YmxpY0Fu
ZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZVByaXZhdGVOYW1lKCksIEN1c3RvbUdldHRlclNl
dHRlcjo6Y3JlYXRlKHZtLCBqc1Rlc3RHbG9iYWxPYmplY3RfcHVibGljQW5kUHJpdmF0ZUNvbmRp
dGlvbmFsQXR0cmlidXRlLCBudWxscHRyKSwgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHkpKTsKICNlbmRpZgogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCiAgICAgaWYgKFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCkp
Ci0gICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBzdGF0aWNfY2FzdDxK
U1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKS5lbmFibGVkQXRS
dW50aW1lT3BlcmF0aW9uUHVibGljTmFtZSgpLCAxLCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5j
ZUZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbiwgTm9JbnRyaW5zaWMsIGF0dHJpYnV0
ZXNGb3JTdHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSkpOworICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgdGhp
cywgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5h
bWVzKCkuZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblB1YmxpY05hbWUoKSwgMSwganNUZXN0R2xv
YmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl9lbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uLCBOb0lu
dHJpbnNpYywgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pKSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoVEVT
VF9GRUFUVVJFKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJl
cygpLnRlc3RGZWF0dXJlRW5hYmxlZCgpKQotICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlv
bih2bSwgdGhpcywgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+
YnVpbHRpbk5hbWVzKCkuZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblN0YXRpY1B1YmxpY05hbWUo
KSwgMSwganNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbkVuYWJsZWRBdFJ1bnRp
bWVPcGVyYXRpb25TdGF0aWMsIE5vSW50cmluc2ljLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbikpKTsK
KyAgICAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIHRoaXMsIHN0YXRpY19jYXN0PEpT
Vk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLmVuYWJsZWRBdFJ1
bnRpbWVPcGVyYXRpb25TdGF0aWNQdWJsaWNOYW1lKCksIDEsIGpzVGVzdEdsb2JhbE9iamVjdENv
bnN0cnVjdG9yRnVuY3Rpb25fZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblN0YXRpYywgTm9JbnRy
aW5zaWMsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSkpOwogI2VuZGlmCiAgICAgaWYgKHdvcmxkRm9y
RE9NT2JqZWN0KCp0aGlzKS5zcGVjaWZpY1dvcmxkKCkpCi0gICAgICAgIHB1dERpcmVjdE5hdGl2
ZUZ1bmN0aW9uKHZtLCB0aGlzLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVu
dERhdGEpLT5idWlsdGluTmFtZXMoKS5lbmFibGVkSW5TcGVjaWZpY1dvcmxkUHVibGljTmFtZSgp
LCAxLCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNX
b3JsZCwgTm9JbnRyaW5zaWMsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSkpOworICAgICAgICBwdXRE
aXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgdGhpcywgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEq
Pih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuZW5hYmxlZEluU3BlY2lmaWNXb3JsZFB1
YmxpY05hbWUoKSwgMSwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl9lbmFibGVk
SW5TcGVjaWZpY1dvcmxkLCBOb0ludHJpbnNpYywgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pKSk7CiAg
ICAgaWYgKCh3b3JsZEZvckRPTU9iamVjdCgqdGhpcykuc3BlY2lmaWNXb3JsZCgpICYmIFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCkp
KQotICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgdGhpcywgc3RhdGljX2Nhc3Q8
SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuZW5hYmxlZElu
U3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWRQdWJsaWNOYW1lKCksIDEsIGpz
VGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hl
blJ1bnRpbWVGZWF0dXJlRW5hYmxlZCwgTm9JbnRyaW5zaWMsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1
cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSkpOworICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgdGhpcywgc3RhdGljX2Nh
c3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuZW5hYmxl
ZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWRQdWJsaWNOYW1lKCksIDEs
IGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25fZW5hYmxlZEluU3BlY2lmaWNXb3Js
ZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQsIE5vSW50cmluc2ljLCBhdHRyaWJ1dGVzRm9yU3Ry
dWN0dXJlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5j
dGlvbikpKTsKICAgICBpZiAoKHdvcmxkRm9yRE9NT2JqZWN0KCp0aGlzKS5zcGVjaWZpY1dvcmxk
KCkgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVy
ZUVuYWJsZWQoKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRl
c3RGZWF0dXJlMUVuYWJsZWQoKSkpCi0gICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZt
LCB0aGlzLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWls
dGluTmFtZXMoKS5lbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlc0VuYWJs
ZWRQdWJsaWNOYW1lKCksIDEsIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFi
bGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlc0VuYWJsZWQsIE5vSW50cmluc2lj
LCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpGdW5jdGlvbikpKTsKKyAgICAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rp
b24odm0sIHRoaXMsIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSkt
PmJ1aWx0aW5OYW1lcygpLmVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVz
RW5hYmxlZFB1YmxpY05hbWUoKSwgMSwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlv
bl9lbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlc0VuYWJsZWQsIE5vSW50
cmluc2ljLCBhdHRyaWJ1dGVzRm9yU3RydWN0dXJlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbikpKTsKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJF
KQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RG
ZWF0dXJlRW5hYmxlZCgpKQotICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgdGhp
cywgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5h
bWVzKCkudGVzdFByaXZhdGVGdW5jdGlvblByaXZhdGVOYW1lKCksIDAsIGpzVGVzdEdsb2JhbE9i
amVjdEluc3RhbmNlRnVuY3Rpb25UZXN0UHJpdmF0ZUZ1bmN0aW9uLCBOb0ludHJpbnNpYywgYXR0
cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pKSk7CisgICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZt
LCB0aGlzLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWls
dGluTmFtZXMoKS50ZXN0UHJpdmF0ZUZ1bmN0aW9uUHJpdmF0ZU5hbWUoKSwgMCwganNUZXN0R2xv
YmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl90ZXN0UHJpdmF0ZUZ1bmN0aW9uLCBOb0ludHJpbnNp
YywgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pKSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoVEVTVF9GRUFU
VVJFKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRl
c3RGZWF0dXJlRW5hYmxlZCgpKQogICAgICAgICBwdXREaXJlY3RCdWlsdGluRnVuY3Rpb24odm0s
IHRoaXMsIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0
aW5OYW1lcygpLnRlc3RKU0J1aWx0aW5GdW5jdGlvblB1YmxpY05hbWUoKSwgdGVzdEdsb2JhbE9i
amVjdFRlc3RKU0J1aWx0aW5GdW5jdGlvbkNvZGVHZW5lcmF0b3Iodm0pLCBhdHRyaWJ1dGVzRm9y
U3RydWN0dXJlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpC
dWlsdGluKSkpOwogI2VuZGlmCiAgICAgaWYgKGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGds
b2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1NlY3VyZUNvbnRleHQo
KSkKLSAgICAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIHRoaXMsIHN0YXRpY19jYXN0
PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLmNhbGN1bGF0
ZVNlY3JldFJlc3VsdFB1YmxpY05hbWUoKSwgMCwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VG
dW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdCwgTm9JbnRyaW5zaWMsIGF0dHJpYnV0ZXNGb3JT
dHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1
bmN0aW9uKSkpOworICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgdGhpcywgc3Rh
dGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCku
Y2FsY3VsYXRlU2VjcmV0UmVzdWx0UHVibGljTmFtZSgpLCAwLCBqc1Rlc3RHbG9iYWxPYmplY3RJ
bnN0YW5jZUZ1bmN0aW9uX2NhbGN1bGF0ZVNlY3JldFJlc3VsdCwgTm9JbnRyaW5zaWMsIGF0dHJp
YnV0ZXNGb3JTdHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkZ1bmN0aW9uKSkpOwogICAgIGlmIChqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihn
bG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVDb250ZXh0
KCkpCi0gICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBzdGF0aWNfY2Fz
dDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKS5nZXRTZWNy
ZXRCb29sZWFuUHVibGljTmFtZSgpLCAwLCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0
aW9uR2V0U2VjcmV0Qm9vbGVhbiwgTm9JbnRyaW5zaWMsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUo
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSkp
OworICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgdGhpcywgc3RhdGljX2Nhc3Q8
SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuZ2V0U2VjcmV0
Qm9vbGVhblB1YmxpY05hbWUoKSwgMCwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlv
bl9nZXRTZWNyZXRCb29sZWFuLCBOb0ludHJpbnNpYywgYXR0cmlidXRlc0ZvclN0cnVjdHVyZShz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pKSk7
CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKICAgICBpZiAoKGpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1NlY3Vy
ZUNvbnRleHQoKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRl
c3RGZWF0dXJlRW5hYmxlZCgpKSkKLSAgICAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0s
IHRoaXMsIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0
aW5OYW1lcygpLnRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhblB1YmxpY05hbWUoKSwgMCwganNU
ZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVh
biwgTm9JbnRyaW5zaWMsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1cmUoc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSkpOworICAgICAgICBwdXREaXJl
Y3ROYXRpdmVGdW5jdGlvbih2bSwgdGhpcywgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2
bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkudGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFu
UHVibGljTmFtZSgpLCAwLCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uX3Rlc3RG
ZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbiwgTm9JbnRyaW5zaWMsIGF0dHJpYnV0ZXNGb3JTdHJ1Y3R1
cmUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSkpOwogI2VuZGlmCiB9CiAKQEAgLTc5OCw3ICs3OTgsNyBAQCBKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0R2xvYmFsCiAgICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRW
YWx1ZSkpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0UmVn
dWxhckF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdF9yZWd1bGFyQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCiB7CiAg
ICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTgwNiwxMiArODA2LDEy
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3QKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnJlZ3VsYXJBdHRyaWJ1dGUoKSkpKTsKIH0KIAotSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRyaWJ1dGUs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEds
b2JhbE9iamVjdF9yZWd1bGFyQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9i
YWxPYmplY3RSZWd1bGFyQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVndWxhckF0dHJpYnV0
ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpz
VGVzdEdsb2JhbE9iamVjdF9yZWd1bGFyQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVndWxh
ckF0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0UmVndWxhckF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdF9yZWd1bGFyQXR0cmlidXRlU2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmpl
Y3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTgyNCwxMiArODI0LDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RHbG9iYWxPYmplY3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklO
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRyaWJ1dGUsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9yZWd1bGFyQXR0cmlidXRlLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RSZWd1bGFyQXR0cmlidXRl
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJy
ZWd1bGFyQXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0X3JlZ3VsYXJBdHRyaWJ1dGVTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZ3VsYXJB
dHRyaWJ1dGUiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RfcHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZUdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2Jq
ZWN0JiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC04MzcsMTIgKzgzNywxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xv
YmFsT2JqZWN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERP
TVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5wdWJsaWNBbmRQ
cml2YXRlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfcHVibGlj
QW5kUHJpdmF0ZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0
UHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgInB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RfcHVibGlj
QW5kUHJpdmF0ZUF0dHJpYnV0ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGVTZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhp
c09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RfcHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1Zh
bHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC04NTUsMTMgKzg1NSwxMyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RHbG9iYWxPYmplY3RfcHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUF0
dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAicHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdF9wdWJsaWNB
bmRQcml2YXRlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJwdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlIik7CiB9CiAKICNpZiBF
TkFCTEUoVEVTVF9GRUFUVVJFKQotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9i
amVjdFB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0
KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdF9wdWJsaWNBbmRQcml2
YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2
bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODY5LDE1ICs4NjksMTUgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdAogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIGltcGwucHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlKCkpKSk7
CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNB
bmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9wdWJsaWNBbmRQcml2YXRl
Q29uZGl0aW9uYWxBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVj
dFB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZUdldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0
ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpz
VGVzdEdsb2JhbE9iamVjdF9wdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGVHZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJwdWJsaWNBbmRQcml2YXRlQ29u
ZGl0aW9uYWxBdHRyaWJ1dGUiKTsKIH0KIAogI2VuZGlmCiAKICNpZiBFTkFCTEUoVEVTVF9GRUFU
VVJFKQotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFBy
aXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVl
KQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdF9wdWJsaWNBbmRQcml2
YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkK
IHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODkwLDE1ICs4
OTAsMTUgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdAogICAgIHJl
dHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFs
T2JqZWN0UHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RHbG9iYWxPYmplY3RfcHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNB
bmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0
dHJpYnV0ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdF9wdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRy
aWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgInB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZSIpOwogfQogCiAjZW5kaWYK
IAogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQor
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdF9lbmFibGVkQXRSdW50aW1l
QXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTkwNiwxNSArOTA2LDE1IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBs
LmVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9i
amVjdF9lbmFibGVkQXRSdW50aW1lQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsK
LSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RH
bG9iYWxPYmplY3RFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSIpOworICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9i
amVjdF9lbmFibGVkQXRSdW50aW1lQXR0cmlidXRlR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSIpOwogfQogCiAjZW5kaWYK
IAogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBK
U1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdF9l
bmFibGVkQXRSdW50aW1lQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUp
CiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTkyNywxNDM1
ICs5MjcsMTQzNSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RH
bG9iYWxPYmplY3RFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9i
YWxPYmplY3RfZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0
ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
ZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdF9lbmFibGVkQXRSdW50
aW1lQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJlbmFibGVkQXRSdW50aW1lQXR0cmlidXRlIik7CiB9CiAKICNlbmRpZgogCi1z
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zQ29u
c3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVz
dEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RH
bG9iYWxPYmplY3RfVGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkK
IHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIEpT
VGVzdENFUmVhY3Rpb25zOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xv
YmFsT2JqZWN0X1Rlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvckdldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RDRVJlYWN0aW9ucyIpOworICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVj
dF9UZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgIlRlc3RDRVJlYWN0aW9ucyIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3JTZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhp
c09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RfVGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNW
YWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yLgogICAgIHJl
dHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0Q0VSZWFjdGlvbnMiKSwgc3RybGVu
KCJUZXN0Q0VSZWFjdGlvbnMiKSksIHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJl
YWN0aW9uc0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJUZXN0Q0VSZWFjdGlvbnMiKTsKKyAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdENF
UmVhY3Rpb25zQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RDRVJlYWN0aW9ucyIpOwogfQogCi1zdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25z
dHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0
R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdF9UZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRo
aXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IHJldHVybiBKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6
OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7
CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VS
ZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdENFUmVhY3Rpb25z
U3RyaW5naWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyIik7Cisg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xv
YmFsT2JqZWN0X1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3JHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmll
ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVl
IHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0Q0VS
ZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUg
dmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAgICByZXR1cm4g
dGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIiKSwg
c3RybGVuKCJUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllciIpKSwgdmFsdWUpOwogfQogCi1KU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25z
U3RyaW5naWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVy
Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgIlRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyIik7CisgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RDRVJlYWN0aW9uc1N0cmluZ2lm
aWVyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
Q2FsbFRyYWNlckNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3JHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYg
dGhpc09iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgcmV0dXJuIEpTVGVzdENhbGxUcmFjZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxl
eGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsVHJhY2VyQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVj
dD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdENhbGxUcmFjZXIiKTsKKyAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9i
YWxPYmplY3RfVGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RDYWxsVHJhY2VyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yU2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3Qm
IHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
R2xvYmFsT2JqZWN0X1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwg
SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yLgogICAg
IHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0Q2FsbFRyYWNlciIpLCBzdHJs
ZW4oIlRlc3RDYWxsVHJhY2VyIikpLCB2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxU
cmFjZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiVGVzdENhbGxUcmFjZXIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdENhbGxU
cmFjZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiVGVzdENhbGxUcmFjZXIiKTsKIH0KIAogI2lmIEVOQUJMRShURVNUX0NP
TkRJVElPTkFMKQotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RD
YWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0
cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RH
bG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIHJldHVybiBKU1Rlc3RDYWxsYmFja0ludGVyZmFjZTo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0Q2FsbGJh
Y2tJbnRlcmZhY2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0Q2FsbGJhY2tJbnRlcmZhY2UiKTsKKyAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3Rf
VGVzdENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJUZXN0Q2FsbGJhY2tJbnRlcmZhY2UiKTsKIH0KIAogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoVEVTVF9DT05ESVRJT05BTCkKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0Q2FsbGJhY2tJbnRlcmZhY2VDb25zdHJ1Y3RvclNldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlz
T2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdF9UZXN0Q2FsbGJhY2tJbnRlcmZhY2VDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0
LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IuCiAg
ICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RDYWxsYmFja0ludGVyZmFj
ZSIpLCBzdHJsZW4oIlRlc3RDYWxsYmFja0ludGVyZmFjZSIpKSwgdmFsdWUpOwogfQogCi1KU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxiYWNrSW50
ZXJmYWNlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQor
SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0Q2FsbGJh
Y2tJbnRlcmZhY2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3JTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RD
YWxsYmFja0ludGVyZmFjZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFs
T2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0Q2FsbGJhY2tJbnRlcmZhY2VD
b25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiVGVzdENhbGxiYWNrSW50ZXJmYWNlIik7CiB9CiAKICNlbmRpZgogCi1zdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNv
bnN0cnVjdG9yQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9y
Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0
cnVjdG9yOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25z
dHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2xhc3NXaXRo
SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgIlRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvciIpOworICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2Jh
bE9iamVjdF9UZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvckdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RDbGFzc1dpdGhKU0J1aWx0
aW5Db25zdHJ1Y3RvciIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3JTZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYg
dGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RfVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3JT
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9i
amVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWlu
IGNvbnN0cnVjdG9yLgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0
Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IiKSwgc3RybGVuKCJUZXN0Q2xhc3NXaXRoSlNC
dWlsdGluQ29uc3RydWN0b3IiKSksIHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdENsYXNzV2l0aEpT
QnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1
Y3RvckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IiKTsKKyAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9i
YWxPYmplY3RfVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3JTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RD
bGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJVENvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmpl
Y3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RET01KSVRD
b25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNU
ZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gSlNUZXN0RE9NSklUOjpnZXRDb25zdHJ1Y3RvcihK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3Qo
KSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
RE9NSklUQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0RE9NSklUQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFs
T2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RET01KSVRDb25zdHJ1Y3RvckdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RET01KSVQiKTsKKyAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxP
YmplY3RfVGVzdERPTUpJVENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiVGVzdERPTUpJVCIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJVENvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpT
VmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rl
c3RET01KSVRDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewog
ICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgLy8g
U2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IuCiAgICAgcmV0dXJuIHRoaXNPYmplY3Qu
cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0
PGNvbnN0IExDaGFyKj4oIlRlc3RET01KSVQiKSwgc3RybGVuKCJUZXN0RE9NSklUIikpLCB2YWx1
ZSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0RE9NSklUQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0RE9N
SklUQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewot
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RET01KSVRDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdERPTUpJVCIpOworICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9i
amVjdF9UZXN0RE9NSklUQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RET01KSVQiKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhl
cml0YW5jZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0X1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5j
ZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJ
bmhlcml0YW5jZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRh
bmNlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJp
dGFuY2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVz
dERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5o
ZXJpdGFuY2UiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRh
bmNlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJU
ZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2UiKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhl
cml0YW5jZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3REZWZhdWx0VG9KU09OSW5k
aXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAgICByZXR1cm4gdGhp
c09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRh
bmNlIiksIHN0cmxlbigiVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlIikpLCB2
YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5j
ZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3Rv
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlIik7CisgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rl
c3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0RGVmYXVsdFRv
SlNPTkluZGlyZWN0SW5oZXJpdGFuY2UiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3Qm
IHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0X1Rl
c3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCiB7CiAg
ICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1Rlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1KU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0
Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3Rv
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05J
bmhlcml0Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9y
U2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxP
YmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yU2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmpl
Y3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBj
b25zdHJ1Y3Rvci4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdERl
ZmF1bHRUb0pTT05Jbmhlcml0IiksIHN0cmxlbigiVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Iikp
LCB2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
R2xvYmFsT2JqZWN0X1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVs
dFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Iik7CisgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xv
YmFsT2JqZWN0X1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXQiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09i
amVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdERlZmF1
bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQogewogICAg
IFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gSlNUZXN0RGVm
YXVsdFRvSlNPTkluaGVyaXRGaW5hbDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1KU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0RmluYWxDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZp
bmFsQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbCIpOworICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2Jh
bE9iamVjdF9UZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yR2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0
RmluYWwiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwg
SlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3Rf
VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0
LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IuCiAg
ICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3REZWZhdWx0VG9KU09OSW5o
ZXJpdEZpbmFsIiksIHN0cmxlbigiVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwiKSksIHZh
bHVlKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dEdsb2JhbE9iamVjdF9UZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0RGVmYXVsdFRvSlNPTkluaGVy
aXRGaW5hbCIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENv
bnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbCIpOwogfQogCi1zdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0
b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2Jh
bE9iamVjdCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RfVGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKIHsK
ICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIEpTVGVz
dERvbWFpblNlY3VyaXR5OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3Rv
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0
R2xvYmFsT2JqZWN0X1Rlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvckdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3REb21haW5TZWN1cml0eSIp
OworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVz
dEdsb2JhbE9iamVjdF9UZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvckdldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3REb21haW5TZWN1cml0eSIpOwogfQogCi1z
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERvbWFpblNlY3VyaXR5
Q29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0
b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2Jh
bE9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0
LWluIGNvbnN0cnVjdG9yLgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJU
ZXN0RG9tYWluU2VjdXJpdHkiKSwgc3RybGVuKCJUZXN0RG9tYWluU2VjdXJpdHkiKSksIHZhbHVl
KTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3Rf
VGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9y
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJU
ZXN0RG9tYWluU2VjdXJpdHkiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdERvbWFpblNlY3VyaXR5Q29u
c3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgIlRlc3REb21haW5TZWN1cml0eSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvckdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0
aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0
RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCiB7CiAgICAgVU5V
U0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1Rlc3RFdmVudENv
bnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9i
YWxPYmplY3RfVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+Ojpn
ZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvckdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RFdmVudENvbnN0cnVjdG9y
Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNU
ZXN0R2xvYmFsT2JqZWN0X1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3JHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RXZlbnRDb25zdHJ1Y3RvciIpOwog
fQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29u
c3RydWN0b3JDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0RXZlbnRDb25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0
byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBTaGFkb3dp
bmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigiVGVzdEV2ZW50Q29uc3RydWN0b3IiKSwgc3RybGVuKCJUZXN0RXZlbnRDb25zdHJ1
Y3RvciIpKSwgdmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0X1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudENv
bnN0cnVjdG9yQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RFdmVudENvbnN0cnVjdG9yIik7CisgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0
X1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RFdmVudENvbnN0cnVjdG9yIik7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRUYXJn
ZXRDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdF9UZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvckdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2Jq
ZWN0KQogewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1
cm4gSlNUZXN0RXZlbnRUYXJnZXQ6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RHbG9iYWxPYmplY3RfVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yR2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdEV2ZW50VGFyZ2V0Iik7CisgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFs
T2JqZWN0X1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAiVGVzdEV2ZW50VGFyZ2V0Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvclNldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0
JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdF9UZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0
LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IuCiAg
ICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RFdmVudFRhcmdldCIpLCBz
dHJsZW4oIlRlc3RFdmVudFRhcmdldCIpKSwgdmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dEV2ZW50VGFyZ2V0Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RFdmVudFRhcmdldCIpOworICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdF9U
ZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEV2ZW50VGFyZ2V0Iik7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3JH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9i
amVjdCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmpl
Y3RfVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCiB7CiAgICAgVU5V
U0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1Rlc3RFeGNlcHRp
b246OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlz
T2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RFeGNlcHRpb25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RF
eGNlcHRpb25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0
VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiVGVzdEV4Y2VwdGlvbiIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0RXhjZXB0aW9uQ29uc3Ry
dWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RXhjZXB0
aW9uIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
RXhjZXB0aW9uQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdEV4Y2VwdGlvbkNvbnN0
cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RH
bG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0g
PSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBi
dWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0s
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
PigiVGVzdEV4Y2VwdGlvbiIpLCBzdHJsZW4oIlRlc3RFeGNlcHRpb24iKSksIHZhbHVlKTsKIH0K
IAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFeGNl
cHRpb25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitK
U0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RFeGNlcHRp
b25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0g
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0RXhjZXB0aW9uIik7CisgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xv
YmFsT2JqZWN0X1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEV4Y2VwdGlvbiIpOwogfQogCi1z
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEdlbmVyYXRlSXNSZWFj
aGFibGVDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yR2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmpl
Y3QmIHRoaXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIHJldHVybiBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjpnZXRDb25zdHJ1Y3RvcihK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3Qo
KSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlIik7CisgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0
X1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSIpOwogfQogCi1zdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGVDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNv
bnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYg
dm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcg
YSBidWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qo
dm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENo
YXIqPigiVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUiKSwgc3RybGVuKCJUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZSIpKSwgdmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlIik7
CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNU
ZXN0R2xvYmFsT2JqZWN0X1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3JTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RHZW5l
cmF0ZUlzUmVhY2hhYmxlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKK3N0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdEdsb2JhbE9iamVjdENv
bnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1Rlc3RHbG9iYWxPYmplY3Q6OmdldENvbnN0cnVj
dG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RHbG9iYWxPYmplY3RD
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdEdsb2Jh
bE9iamVjdENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAiVGVzdEdsb2JhbE9iamVjdCIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xv
YmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0R2xvYmFsT2JqZWN0Q29uc3Ry
dWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0R2xvYmFs
T2JqZWN0Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1
ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdEdsb2JhbE9i
amVjdENvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBTaGFk
b3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiVGVzdEdsb2JhbE9iamVjdCIpLCBzdHJsZW4oIlRlc3RHbG9iYWxPYmplY3Qi
KSksIHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFs
T2JqZWN0X1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEdsb2JhbE9iamVjdENvbnN0cnVj
dG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJUZXN0R2xvYmFsT2JqZWN0Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9i
YWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RHbG9iYWxPYmplY3RDb25z
dHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAiVGVzdEdsb2JhbE9iamVjdCIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvckdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2Jq
ZWN0JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dF9UZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmpl
Y3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVy
biBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9
CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdEluZGV4ZWRTZXR0
ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFs
T2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlm
aWVyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8
anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0
b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0SW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllciIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvclNldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0
aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEds
b2JhbE9iamVjdF9UZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yU2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3Qm
IHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25z
dHJ1Y3Rvci4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXIiKSwgc3RybGVuKCJUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRp
ZmllciIpKSwgdmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9i
YWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyIik7CiB9CiAK
LXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRl
clRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKK3N0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbkNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BB
UkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1Rlc3RJbmRleGVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb246OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0
VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yR2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbiIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
Z2V0PGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9u
Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0
SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9u
Q29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbkNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAg
ICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBT
aGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAgICByZXR1cm4gdGhpc09iamVjdC5w
dXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgTENoYXIqPigiVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpLCBzdHJs
ZW4oIlRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iKSksIHZhbHVlKTsKIH0KIAot
SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFs
T2JqZWN0X1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0SW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb25Db25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIp
OwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCitzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJbmRleGVkU2V0dGVyV2l0
aElkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQogewogICAgIFVOVVNFRF9Q
QVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gSlNUZXN0SW5kZXhlZFNldHRl
cldpdGhJZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIiKTsKKyAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9i
YWxPYmplY3RfVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllciIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yU2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNP
YmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFs
T2JqZWN0X1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvclNldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0
aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3Ry
dWN0b3IuCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXIiKSwgc3RybGVuKCJUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyIikpLCB2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewot
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVz
dEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0SW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXIiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3Qp
CitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJbnRlcmZhY2VM
ZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCiB7CiAgICAgVU5V
U0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1Rlc3RJbnRlcmZh
Y2VMZWFkaW5nVW5kZXJzY29yZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1KU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUxlYWRpbmdVbmRl
cnNjb3JlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2Nv
cmVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdElu
dGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUiKTsKKyAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9i
YWxPYmplY3RfVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3JHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0SW50ZXJmYWNlTGVhZGluZ1Vu
ZGVyc2NvcmUiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmpl
Y3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0X1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNP
YmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rv
ci4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEludGVyZmFjZUxl
YWRpbmdVbmRlcnNjb3JlIiksIHN0cmxlbigiVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3Jl
IikpLCB2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvclNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEludGVyZmFj
ZUxlYWRpbmdVbmRlcnNjb3JlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9i
YWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJbnRlcmZhY2VMZWFkaW5n
VW5kZXJzY29yZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUiKTsKIH0K
IAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJdGVyYWJsZUNv
bnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
R2xvYmFsT2JqZWN0X1Rlc3RJdGVyYWJsZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCiB7
CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1Rl
c3RJdGVyYWJsZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVj
dF9UZXN0SXRlcmFibGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFs
T2JqZWN0VGVzdEl0ZXJhYmxlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJUZXN0SXRlcmFibGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdEl0ZXJhYmxlQ29u
c3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0SXRl
cmFibGUiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RJdGVyYWJsZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJdGVyYWJsZUNvbnN0
cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RH
bG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0g
PSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBi
dWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0s
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
PigiVGVzdEl0ZXJhYmxlIiksIHN0cmxlbigiVGVzdEl0ZXJhYmxlIikpLCB2YWx1ZSk7CiB9CiAK
LUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SXRlcmFi
bGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RJdGVyYWJsZUNv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEl0ZXJhYmxlIik7CisgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0X1Rlc3RJdGVyYWJsZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0SXRlcmFibGUiKTsKIH0KIAotc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNv
bnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
R2xvYmFsT2JqZWN0X1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRo
aXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IHJldHVybiBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwog
fQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdEpTQnVp
bHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0SlNCdWlsdGluQ29uc3Ry
dWN0b3JDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVz
dEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IiKTsKKyAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3Rf
VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IiKTsKIH0KIAotc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1
Y3RvckNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0
byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBTaGFkb3dp
bmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigiVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yIiksIHN0cmxlbigiVGVzdEpTQnVpbHRp
bkNvbnN0cnVjdG9yIikpLCB2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEpTQnVpbHRpbkNvbnN0
cnVjdG9yIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+Ojpz
ZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVj
dG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3Rvckdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2Jq
ZWN0JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dF9UZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkK
IHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIEpT
VGVzdDo6Z2V0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25z
dHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZhY3RvcnlGdW5j
dGlvbkNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbiIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TGVnYWN5RmFjdG9y
eUZ1bmN0aW9uQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0
b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2Jh
bE9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9y
U2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxP
YmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6
OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1p
biBjb25zdHJ1Y3Rvci4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVz
dExlZ2FjeUZhY3RvcnlGdW5jdGlvbiIpLCBzdHJsZW4oIlRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rp
b24iKSksIHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9u
Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0
SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVz
dExlZ2FjeUZhY3RvcnlGdW5jdGlvbiIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQorc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdF9BdWRpb0NvbnN0cnVjdG9yR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3Qm
IHRoaXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIHJldHVybiBKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb246OmdldExlZ2FjeUZhY3RvcnlG
dW5jdGlvbihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9i
YWxPYmplY3QoKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxP
YmplY3RBdWRpb0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfQXVkaW9Db25zdHJ1Y3RvciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1Y3RvckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIkF1ZGlvIik7CisgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0X0F1ZGlv
Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJBdWRp
byIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0QXVkaW9D
b25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNU
ZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdF9BdWRpb0NvbnN0cnVjdG9yU2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNP
YmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rv
ci4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiQXVkaW8iKSwgc3RybGVu
KCJBdWRpbyIpKSwgdmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0X0F1ZGlvQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNl
dEpTVGVzdEdsb2JhbE9iamVjdEF1ZGlvQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIkF1ZGlvIik7CisgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0
X0F1ZGlvQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgIkF1ZGlvIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3Qm
IHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0X1Rl
c3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKIHsK
ICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIEpTVGVz
dExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lPdmVycmlkZUJ1
aWx0SW5zQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0Nv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5
T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiKTsKKyAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RfVGVz
dExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIik7CiB9CiAKLXN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5T3ZlcnJpZGVC
dWlsdEluc0NvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RMZWdhY3lPdmVycmlkZUJ1
aWx0SW5zQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAg
ICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIC8vIFNo
YWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yLgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucyIpLCBzdHJsZW4oIlRlc3RM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zIikpLCB2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0Nv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnNDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVz
dExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiKTsKIH0KIAot
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3Ry
dWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEds
b2JhbE9iamVjdCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RfVGVzdE1hcExpa2VDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQogewogICAg
IFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gSlNUZXN0TWFw
TGlrZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RN
YXBMaWtlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RNYXBMaWtlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJUZXN0TWFwTGlrZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFs
T2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TWFwTGlrZUNvbnN0cnVjdG9yR2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE1hcExpa2UiKTsKIH0K
IAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29u
c3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVz
dEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdE1hcExpa2VDb25zdHJ1Y3RvclNldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0
aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3Ry
dWN0b3IuCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RNYXBMaWtl
IiksIHN0cmxlbigiVGVzdE1hcExpa2UiKSksIHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0TWFwTGlrZUNvbnN0cnVjdG9yLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlr
ZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJUZXN0TWFwTGlrZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0TWFwTGlrZUNvbnN0
cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJUZXN0TWFwTGlrZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xv
YmFsT2JqZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rvckdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2Jq
ZWN0JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dF9UZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRo
aXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IHJldHVybiBKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zOjpnZXRDb25zdHJ1
Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxP
YmplY3QoKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmpl
Y3RfVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgIlRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zIik7CisgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0X1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9ucyIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvclNldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlz
T2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdF9UZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yU2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmpl
Y3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBj
b25zdHJ1Y3Rvci4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE1h
cExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMiKSwgc3RybGVuKCJUZXN0TWFwTGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9ucyIpKSwgdmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitK
U0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RNYXBMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFs
T2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0
SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29u
c3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgIlRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zIik7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5v
SWRlbnRpZmllckNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BB
UkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0g
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9y
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlck5vSWRlbnRpZmllciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyIik7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNW
YWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yU2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNP
YmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rv
ci4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlck5vSWRlbnRpZmllciIpLCBzdHJsZW4oIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJOb0lkZW50aWZpZXIiKSksIHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZp
ZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
ck5vSWRlbnRpZmllckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlm
aWVyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8
c2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZp
ZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllciIpOwogfQog
Ci1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkK
K3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkK
IHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIEpT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFs
T2JqZWN0X1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbiIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
Z2V0PGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb25Db25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpOwogfQogCi1z
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNW
YWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3JTZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYg
dGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0o
JmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0
cnVjdG9yLgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iKSwgc3RybGVuKCJUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iKSksIHZhbHVlKTsKIH0KIAotSlNDX0RFRklO
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxP
YmplY3RfVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iKTsKKyAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3Rf
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3JTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpOwogfQogCi1zdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJ
ZGVudGlmaWVyQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKIHsKICAgICBVTlVTRURfUEFS
QU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUpTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
IHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25z
dHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllciIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYg
dGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RfVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3Ry
dWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEds
b2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9
IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIC8vIFNoYWRvd2luZyBhIGJ1
aWx0LWluIGNvbnN0cnVjdG9yLgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+
KCJUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIiKSwgc3RybGVuKCJUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIiKSksIHZhbHVlKTsKIH0KIAotSlND
X0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9i
YWxPYmplY3RfVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIiKTsKKyAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9y
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxP
YmplY3QmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0X1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2Jq
ZWN0KQogewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1
cm4gSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9
CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRE
ZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWREZWxldGVy
Tm9JZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIi
KTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rl
c3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yR2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkRGVsZXRlck5v
SWRlbnRpZmllciIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmpl
Y3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0X1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvclNldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2Jq
ZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3Iu
CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZERlbGV0ZXJO
b0lkZW50aWZpZXIiKSwgc3RybGVuKCJUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyIikpLCB2
YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dEdsb2JhbE9iamVjdF9UZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRp
ZmllciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0
PHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3Ry
dWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgIlRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIiKTsKIH0KIAotc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlv
bkNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVj
dG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9i
YWxPYmplY3QmIHRoaXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIHJldHVybiBKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6
Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0
R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEds
b2JhbE9iamVjdF9UZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlclRocm93
aW5nRXhjZXB0aW9uQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24iKTsKKyAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3Rf
VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNl
cHRpb24iKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmpl
Y3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0X1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yU2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRo
aXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1
Y3Rvci4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkRGVs
ZXRlclRocm93aW5nRXhjZXB0aW9uIiksIHN0cmxlbigiVGVzdE5hbWVkRGVsZXRlclRocm93aW5n
RXhjZXB0aW9uIikpLCB2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1
Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25z
dHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAiVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uIik7CisgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0
X1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWREZWxl
dGVyVGhyb3dpbmdFeGNlcHRpb24iKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yR2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmpl
Y3QmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
X1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmpl
Y3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVy
biBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwog
fQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
RGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWREZWxl
dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0g
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3JHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWREZWxldGVyV2l0aElk
ZW50aWZpZXIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29u
c3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFt
ZWREZWxldGVyV2l0aElkZW50aWZpZXIiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9y
U2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxP
YmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVj
dG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9i
YWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBidWls
dC1pbiBjb25zdHJ1Y3Rvci4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyIiksIHN0cmxlbigiVGVzdE5hbWVkRGVsZXRl
cldpdGhJZGVudGlmaWVyIikpLCB2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25z
dHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1
Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAiVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyIik7CisgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RO
YW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWREZWxldGVyV2l0aElk
ZW50aWZpZXIiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNP
YmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1l
ZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCiB7
CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQog
Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVs
ZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWREZWxl
dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7
Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0
R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3JH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWREZWxldGVy
V2l0aEluZGV4ZWRHZXR0ZXIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRl
eGVkR2V0dGVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIiKTsKIH0KIAotc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhl
ZEdldHRlckNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SW5kZXhlZEdldHRlckNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUp
CiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAgICByZXR1cm4gdGhpc09i
amVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyIiks
IHN0cmxlbigiVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyIikpLCB2YWx1ZSk7CiB9
CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xv
YmFsT2JqZWN0X1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVkRGVsZXRlcldp
dGhJbmRleGVkR2V0dGVyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5k
ZXhlZEdldHRlckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIiKTsK
IH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdl
dHRlckNhbGxXaXRoQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1
Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xv
YmFsT2JqZWN0JiB0aGlzT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICByZXR1cm4gSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aDo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1l
ZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aCIpOworICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2Jh
bE9iamVjdF9UZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGgiKTsKIH0K
IAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRl
ckNhbGxXaXRoQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkR2V0dGVyQ2Fs
bFdpdGhDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAg
IGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgLy8gU2hh
ZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IuCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0
RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNv
bnN0IExDaGFyKj4oIlRlc3ROYW1lZEdldHRlckNhbGxXaXRoIiksIHN0cmxlbigiVGVzdE5hbWVk
R2V0dGVyQ2FsbFdpdGgiKSksIHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRHZXR0ZXJDYWxs
V2l0aCIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0
PHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9y
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJU
ZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aCIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVj
dCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3Rf
VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkK
IHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIEpT
VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUpT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJO
b0lkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZEdldHRlck5vSWRlbnRp
ZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllciIpOworICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9i
amVjdF9UZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllciIp
OwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
R2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2
YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVk
R2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2
YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yLgogICAgIHJldHVybiB0
aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIiKSwg
c3RybGVuKCJUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIiKSksIHZhbHVlKTsKIH0KIAotSlND
X0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRl
ck5vSWRlbnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVz
dE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFs
T2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlck5vSWRlbnRp
ZmllckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIiKTsKKyAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RfVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZEdldHRlck5v
SWRlbnRpZmllciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2Jq
ZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRH
ZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1Rlc3ROYW1l
ZEdldHRlcldpdGhJZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUpTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJXaXRoSWRl
bnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZp
ZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5h
bWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyIik7CisgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFs
T2JqZWN0X1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3JHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRp
ZmllciIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBK
U1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdF9U
ZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3Qs
IEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAg
ICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkR2V0dGVyV2l0aElk
ZW50aWZpZXIiKSwgc3RybGVuKCJUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllciIpKSwgdmFs
dWUpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZEdldHRlcldpdGhJZGVu
dGlmaWVyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+Ojpz
ZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29u
c3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgIlRlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyIik7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJD
b25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNU
ZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dEdsb2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0
JiB0aGlzT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICByZXR1cm4gSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmdldENvbnN0cnVjdG9y
KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVj
dCgpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVk
U2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewot
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yR2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlm
aWVyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8
anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9y
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkU2V0dGVy
Tm9JZGVudGlmaWVyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvclNldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2Jq
ZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdF9UZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvclNldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2Jq
ZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3Iu
CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZFNldHRlck5v
SWRlbnRpZmllciIpLCBzdHJsZW4oIlRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllciIpKSwgdmFs
dWUpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEds
b2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
U2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllciIp
OworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpT
VGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVz
dE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVj
dG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9i
YWxPYmplY3QmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0X1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3JHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYg
dGhpc09iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgcmV0dXJuIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OmdldENvbnN0cnVj
dG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9U
ZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNv
bnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5h
bWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgIlRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uIik7CiB9CiAKLXN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUp
CitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRl
clRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2
YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yLgogICAgIHJldHVybiB0
aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
biIpLCBzdHJsZW4oIlRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uIikpLCB2YWx1ZSk7
CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RH
bG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb24iKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9i
amVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb25Db25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iKTsKIH0K
IAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRl
cldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZp
ZXJDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRp
Zmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rv
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0
R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xv
YmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVu
dGlmaWVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIiKTsKIH0KIAotc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJ
ZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0
aElkZW50aWZpZXJDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQog
ewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
Ly8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IuCiAgICAgcmV0dXJuIHRoaXNPYmpl
Y3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyIiksIHN0cmxl
bigiVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIiKSksIHZhbHVlKTsKIH0KIAotSlNDX0RF
RklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldp
dGhJZGVudGlmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0
TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSWRl
bnRpZmllckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIpOworICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2Jh
bE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rvckdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2Jq
ZWN0JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dF9UZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNP
YmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHJl
dHVybiBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyOjpnZXRDb25zdHJ1Y3RvcihK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3Qo
KSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1
Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhJ
bmRleGVkR2V0dGVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlciIpOwogfQogCi1zdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJXaXRo
SW5kZXhlZEdldHRlckNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUp
CiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAgICByZXR1cm4gdGhpc09i
amVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIiKSwg
c3RybGVuKCJUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlciIpKSwgdmFsdWUpOwogfQog
Ci1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFs
T2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1l
ZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+
OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0
dGVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyIik7CiB9CiAKLXN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRo
SW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCitzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhJ
bmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKIHsKICAg
ICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIEpTVGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsK
IH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1l
ZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9U
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhl
ZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIiKTsK
KyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RH
bG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25z
dHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1l
ZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
ckFuZFNldHRlckNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldp
dGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNW
YWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yLgogICAgIHJl
dHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhl
ZEdldHRlckFuZFNldHRlciIpLCBzdHJsZW4oIlRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0
dGVyQW5kU2V0dGVyIikpLCB2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNl
dHRlckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0
dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJBbmRTZXR0ZXIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0aElu
ZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRH
ZXR0ZXJBbmRTZXR0ZXIiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0
b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2Jh
bE9iamVjdCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rv
ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFs
T2JqZWN0JiB0aGlzT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICByZXR1cm4gSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWls
dEluczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnNDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3JHZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5T3ZlcnJpZGVCdWlsdElucyIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnMiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3JTZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhp
c09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1
Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xv
YmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0g
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5nIGEgYnVp
bHQtaW4gY29uc3RydWN0b3IuCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
IlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIiksIHN0cmxlbigiVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiKSksIHZhbHVlKTsKIH0KIAot
SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNl
dHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dEdsb2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0Nv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVj
dG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIpOworICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9i
amVjdF9UZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9y
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIpOwogfQogCi1zdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCitzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQog
ewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzOjpnZXRDb25zdHJ1
Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxP
YmplY3QoKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dEdsb2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0
aWVzQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3RvckdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXMiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9y
Z2VhYmxlUHJvcGVydGllcyIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0Nv
bnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZh
bHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IuCiAgICAgcmV0dXJuIHRo
aXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdl
YWJsZVByb3BlcnRpZXMiKSwgc3RybGVuKCJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3Jn
ZWFibGVQcm9wZXJ0aWVzIikpLCB2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0
TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3RvclNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcyIpOworICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVj
dF9UZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0
b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
IlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXMiKTsKIH0KIAot
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29u
c3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVz
dEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RH
bG9iYWxPYmplY3RfVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGll
c0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQog
ewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3Zl
cnJpZGVCdWlsdEluczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9y
Z2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFs
T2JqZWN0X1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRp
ZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIpOworICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0
TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJp
ZGVCdWlsdEluc0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExl
Z2FjeU92ZXJyaWRlQnVpbHRJbnMiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRp
ZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwg
SlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3Rf
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVl
KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IuCiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJs
ZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIiksIHN0cmxlbigiVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnMiKSksIHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRp
ZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEds
b2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVz
QW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVj
dG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5
T3ZlcnJpZGVCdWlsdElucyIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFs
T2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVj
dG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5
T3ZlcnJpZGVCdWlsdElucyIpOwogfQogCiAjaWYgRU5BQkxFKENvbmRpdGlvbkRlcml2ZWQpCi1z
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRp
dGlvbmFsQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3JH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9i
amVjdCYgdGhpc09iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgcmV0dXJuIEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RPcGVyYXRp
b25Db25kaXRpb25hbENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RPcGVyYXRpb25Db25kaXRpb25hbCIpOworICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2Jh
bE9iamVjdF9UZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvckdldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RPcGVyYXRpb25Db25kaXRpb25hbCIpOwog
fQogCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb25EZXJpdmVkKQotc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0
cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RH
bG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVj
dG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9i
YWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBidWls
dC1pbiBjb25zdHJ1Y3Rvci4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsIiksIHN0cmxlbigiVGVzdE9wZXJhdGlvbkNvbmRpdGlv
bmFsIikpLCB2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsIik7
CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNU
ZXN0R2xvYmFsT2JqZWN0X1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0T3Bl
cmF0aW9uQ29uZGl0aW9uYWwiKTsKIH0KIAogI2VuZGlmCiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5j
ZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0X1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29u
c3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVz
dEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRo
U2VxdWVuY2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
LCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVl
bmNlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhT
ZXF1ZW5jZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yR2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNXaXRoU2VxdWVuY2UiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9i
amVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNX
aXRoU2VxdWVuY2VDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgIlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlIik7CiB9CiAKLXN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUg
dmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVj
dCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yLgog
ICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9yc1dpdGhTZXF1ZW5jZSIpLCBzdHJsZW4oIlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
V2l0aFNlcXVlbmNlIikpLCB2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5j
ZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2Vx
dWVuY2UiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNl
dDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2Vx
dWVuY2VDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UiKTsK
IH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RQbHVnaW5J
bnRlcmZhY2VDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3JHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVj
dCYgdGhpc09iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgcmV0dXJuIEpTVGVzdFBsdWdpbkludGVyZmFjZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwog
fQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdFBsdWdp
bkludGVyZmFjZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFBsdWdpbkludGVyZmFjZUNvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UGx1Z2luSW50
ZXJmYWNlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJUZXN0UGx1Z2luSW50ZXJmYWNlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RQbHVnaW5JbnRlcmZhY2VD
b25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RQ
bHVnaW5JbnRlcmZhY2UiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBK
U1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdF9U
ZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2
YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yLgogICAgIHJldHVybiB0
aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0UGx1Z2luSW50ZXJmYWNlIiksIHN0cmxlbigi
VGVzdFBsdWdpbkludGVyZmFjZSIpKSwgdmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9y
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RQbHVnaW5JbnRlcmZhY2UiKTsKKyAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RH
bG9iYWxPYmplY3RfVGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0UGx1Z2luSW50ZXJm
YWNlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVj
dG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9i
YWxPYmplY3QmIHRoaXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIHJldHVybiBKU1Rlc3RSZWFkT25seU1hcExpa2U6OmdldENvbnN0cnVjdG9y
KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVj
dCgpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RSZWFkT25seU1hcExp
a2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdFJl
YWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiVGVzdFJlYWRPbmx5TWFwTGlrZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0UmVhZE9ubHlN
YXBMaWtlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJUZXN0UmVhZE9ubHlNYXBMaWtlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09i
amVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RfVGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpT
VmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAgICBy
ZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFJlYWRPbmx5TWFwTGlrZSIpLCBz
dHJsZW4oIlRlc3RSZWFkT25seU1hcExpa2UiKSksIHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seU1hcExpa2VDb25z
dHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RSZWFkT25seU1hcExpa2VD
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0UmVhZE9ubHlNYXBMaWtl
Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0
SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvclNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFJlYWRP
bmx5TWFwTGlrZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCitzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RSZWFkT25seVNldExpa2VD
b25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNU
ZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gSlNUZXN0UmVhZE9ubHlTZXRMaWtlOjpnZXRDb25z
dHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9i
YWxPYmplY3QoKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0UmVhZE9u
bHlTZXRMaWtlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgIlRlc3RSZWFkT25seVNldExpa2UiKTsKKyAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFJl
YWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiVGVzdFJlYWRPbmx5U2V0TGlrZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yU2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3Qm
IHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
R2xvYmFsT2JqZWN0X1Rlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvclNldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2Jq
ZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3Iu
CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RSZWFkT25seVNldExp
a2UiKSwgc3RybGVuKCJUZXN0UmVhZE9ubHlTZXRMaWtlIikpLCB2YWx1ZSk7CiB9CiAKLUpTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlTZXRM
aWtlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlND
X0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0UmVhZE9ubHlT
ZXRMaWtlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQog
ewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvclNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFJlYWRPbmx5
U2V0TGlrZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3JT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRl
c3RSZWFkT25seVNldExpa2UiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvckdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlz
T2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0UmVw
b3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKIHsKICAgICBV
TlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIEpTVGVzdFJlcG9y
dEV4dHJhTWVtb3J5Q29zdDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1KU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9y
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVwb3J0RXh0cmFNZW1v
cnlDb3N0Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RSZXBvcnRFeHRy
YU1lbW9yeUNvc3RDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgIlRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3QiKTsKIH0KIAotc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1
Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xv
YmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0
b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2Jh
bE9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0
LWluIGNvbnN0cnVjdG9yLgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJU
ZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0IiksIHN0cmxlbigiVGVzdFJlcG9ydEV4dHJhTWVtb3J5
Q29zdCIpKSwgdmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9y
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RSZXBvcnRFeHRyYU1lbW9yeUNv
c3QiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9y
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJU
ZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Iik7CiB9CiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkg
fHwgRU5BQkxFKENvbmRpdGlvbjIpCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3Qm
IHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0X1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvckdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2Jq
ZWN0KQogewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1
cm4gSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpnZXRDb25zdHJ1Y3RvcihK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3Qo
KSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VD
b25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAiVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSIpOwog
fQogCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9u
MikKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1
ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3Qs
IEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAg
ICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZSIpLCBzdHJsZW4oIlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UiKSksIHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7
Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVj
dG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIik7CisgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvclNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZSIpOwogfQogCiAjZW5kaWYKIAotc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09i
amVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFNldExp
a2VDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gSlNUZXN0U2V0TGlrZTo6Z2V0Q29uc3RydWN0
b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2Jq
ZWN0KCkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0
VGVzdFNldExpa2VDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTZXRMaWtlQ29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0
b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U2V0TGlrZSIp
OworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVz
dEdsb2JhbE9iamVjdF9UZXN0U2V0TGlrZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFNldExpa2UiKTsKIH0KIAotc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0b3JTZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhp
c09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RfVGVzdFNldExpa2VDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVl
IHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IuCiAgICAgcmV0dXJu
IHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWlu
dGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RTZXRMaWtlIiksIHN0cmxlbigiVGVzdFNl
dExpa2UiKSksIHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2Jh
bE9iamVjdF9UZXN0U2V0TGlrZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVj
dD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0U2V0
TGlrZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0
PHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0U2V0TGlrZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0U2V0TGlrZSIp
OwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQor
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0U2V0TGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1Rlc3RTZXRM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUpT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFNldExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7
Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0
R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rv
ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RTZXRMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTZXRMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyIpOwogfQogCi1z
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZh
bHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0U2V0TGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpT
VmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAgICBy
ZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnMiKSwgc3RybGVuKCJUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
cyIpKSwgdmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQog
ewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3Ry
dWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgIlRlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zIik7CisgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0
X1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3JTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RTZXRMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvckdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2Jq
ZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0U3RyaW5n
aWZpZXJDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gSlNUZXN0U3RyaW5naWZpZXI6OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmds
b2JhbE9iamVjdCgpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFN0cmluZ2lm
aWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RT
dHJpbmdpZmllckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiVGVzdFN0cmluZ2lmaWVyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJpbmdpZmllckNvbnN0
cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFN0cmlu
Z2lmaWVyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVl
KQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0U3RyaW5naWZp
ZXJDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1
dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93
aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IuCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGly
ZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oIlRlc3RTdHJpbmdpZmllciIpLCBzdHJsZW4oIlRlc3RTdHJpbmdpZmllciIpKSwg
dmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVj
dF9UZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+
OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3JTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RT
dHJpbmdpZmllciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVz
dFN0cmluZ2lmaWVyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvckdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0
aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0
U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0
KQogewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4g
SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb246OmdldENvbnN0cnVjdG9yKEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsK
IH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJp
bmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFN0cmlu
Z2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVj
dG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFN0cmluZ2lm
aWVyQW5vbnltb3VzT3BlcmF0aW9uIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJpbmdpZmllckFub255
bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uIik7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJBbm9ueW1v
dXNPcGVyYXRpb25Db25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQor
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0U3RyaW5naWZpZXJB
bm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZh
bHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IuCiAgICAgcmV0dXJuIHRo
aXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlv
biIpLCBzdHJsZW4oIlRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbiIpKSwgdmFsdWUp
OwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dEdsb2JhbE9iamVjdF9UZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3Rv
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RTdHJpbmdpZmll
ckFub255bW91c09wZXJhdGlvbiIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xv
YmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0U3RyaW5naWZpZXJBbm9u
eW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9u
Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3Ry
aW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCitzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJpbmdpZmllck5hbWVk
T3BlcmF0aW9uQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKIHsKICAgICBVTlVTRURfUEFS
QU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIEpTVGVzdFN0cmluZ2lmaWVyTmFt
ZWRPcGVyYXRpb246OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJO
YW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24iKTsKKyAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RfVGVz
dFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uIik7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZp
ZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFs
dWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJpbmdp
Zmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2
YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yLgogICAgIHJldHVybiB0
aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbiIp
LCBzdHJsZW4oIlRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uIikpLCB2YWx1ZSk7CiB9CiAK
LUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5n
aWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RfVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVy
TmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24iKTsK
KyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rl
c3RHbG9iYWxPYmplY3RfVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVz
dFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24iKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXND
b25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNU
ZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dEdsb2JhbE9iamVjdF9UZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3Ry
dWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEds
b2JhbE9iamVjdCYgdGhpc09iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgcmV0dXJuIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50
ZWRBczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0Nv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRB
c0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3Ry
aW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1l
bnRlZEFzIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+Ojpn
ZXQ8anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVk
QXNDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRl
c3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMiKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXNDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2
YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yLgogICAgIHJldHVybiB0
aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1l
bnRlZEFzIiksIHN0cmxlbigiVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcyIp
KSwgdmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVt
ZW50ZWRBc0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
IHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29u
c3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgIlRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMiKTsKKyAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxP
YmplY3RfVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0
U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRv
U3RyaW5nQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmlu
Z0NvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5h
bWVkVG9TdHJpbmc6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9T
dHJpbmdDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVk
VG9TdHJpbmdDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0
VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yR2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
TmFtZWRUb1N0cmluZyIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1l
ZFRvU3RyaW5nQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nIik7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRp
b25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdEdsb2JhbE9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1
ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RfVGVzdFN0cmluZ2lm
aWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QsIEpT
VmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAgICBy
ZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
TmFtZWRUb1N0cmluZyIpLCBzdHJsZW4oIlRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9T
dHJpbmciKSksIHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1
Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJpbmdpZmllck9wZXJhdGlv
bk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+Ojpz
ZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0
cmluZ0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nIik7Cisg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0
R2xvYmFsT2JqZWN0X1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1
Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAiVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZyIpOwogfQogCi1zdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlB
dHRyaWJ1dGVDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNv
bnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3RHbG9iYWxPYmplY3QmIHRoaXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmli
dXRlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhp
c09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RHbG9iYWxPYmplY3RfVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3Rv
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVh
ZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgIlRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlIik7CisgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0
X1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJp
YnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0
LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dF9UZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RHbG9iYWxPYmplY3QmIHRoaXNP
YmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rv
ci4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFN0cmluZ2lmaWVy
UmVhZE9ubHlBdHRyaWJ1dGUiKSwgc3RybGVuKCJUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJp
YnV0ZSIpKSwgdmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmli
dXRlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewot
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3JT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRl
c3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJp
bmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RTdHJpbmdpZmllclJlYWRPbmx5
QXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvckdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlz
T2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdF9UZXN0U3Ry
aW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQog
ewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gSlNU
ZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0K
IAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdp
ZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxPYmplY3RfVGVzdFN0cmluZ2lm
aWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9y
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFN0cmluZ2lmaWVy
UmVhZFdyaXRlQXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9i
YWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RTdHJpbmdpZmllclJlYWRXcml0
ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVB
dHRyaWJ1dGVDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0U3RyaW5naWZpZXJSZWFk
V3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVl
KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IuCiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSIp
LCBzdHJsZW4oIlRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSIpKSwgdmFsdWUpOwog
fQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0
cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEds
b2JhbE9iamVjdF9UZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RTdHJpbmdpZmllclJl
YWRXcml0ZUF0dHJpYnV0ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFs
T2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0U3RyaW5naWZpZXJSZWFkV3Jp
dGVBdHRyaWJ1dGVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlIik7
CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0VHlwZWRl
ZnNDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdF9UZXN0VHlwZWRlZnNDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0
KQogewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4g
SlNUZXN0VHlwZWRlZnM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdEdsb2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RHbG9iYWxP
YmplY3RfVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewot
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEds
b2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAiVGVzdFR5cGVkZWZzIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0X1Rlc3RUeXBlZGVm
c0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVz
dFR5cGVkZWZzIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVl
KQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0VHlwZWRlZnND
b25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNU
ZXN0R2xvYmFsT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8m
IHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5n
IGEgYnVpbHQtaW4gY29uc3RydWN0b3IuCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExD
aGFyKj4oIlRlc3RUeXBlZGVmcyIpLCBzdHJsZW4oIlRlc3RUeXBlZGVmcyIpKSwgdmFsdWUpOwog
fQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFR5
cGVkZWZzQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQor
SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEdsb2JhbE9iamVjdF9UZXN0VHlwZWRl
ZnNDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0g
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdFR5cGVkZWZzQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RUeXBlZGVmcyIpOworICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2Jh
bE9iamVjdF9UZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFR5cGVkZWZzIik7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1
bmN0aW9uUmVndWxhck9wZXJhdGlvbkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0
aW9uPEpTVGVzdEdsb2JhbE9iamVjdD46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VG
dW5jdGlvbl9yZWd1bGFyT3BlcmF0aW9uQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVy
YXRpb248SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsK
ICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMzcyLDEzICsyMzcy
LDEzIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblJlZ3VsYXJPcGVyYXRp
b24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3Rh
bmNlRnVuY3Rpb25fcmVndWxhck9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpjYWxsPGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNl
RnVuY3Rpb25SZWd1bGFyT3BlcmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJyZWd1bGFyT3BlcmF0aW9uIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpjYWxsPGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25f
cmVndWxhck9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
cmVndWxhck9wZXJhdGlvbiIpOwogfQogCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLXN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1
bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbjFCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1l
IElETE9wZXJhdGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRU
aGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dEluc3RhbmNlRnVuY3Rpb25fZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbjFCb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpDbGFzc1BhcmFt
ZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTIzOTYsNyArMjM5Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3QKICNlbmRpZgogCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLXN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9u
RW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbjJCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9w
ZXJhdGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQor
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdEluc3Rh
bmNlRnVuY3Rpb25fZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbjJCb2R5KEpTQzo6SlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5
cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpDbGFzc1BhcmFtZXRlciBj
YXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTI0MTUsNyArMjQxNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3QKIAogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEF0UnVu
dGltZU9wZXJhdGlvbk92ZXJsb2FkRGlzcGF0Y2hlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExP
cGVyYXRpb248SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykK
K3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0
YW5jZUZ1bmN0aW9uX2VuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25PdmVybG9hZERpc3BhdGNoZXIo
SlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdEdsb2JhbE9iamVjdD46OkNs
YXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMjQyNiwyNCArMjQyNiwyNCBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0CiAgICAgICAgIEpTVmFsdWUgZGlzdGluZ3Vpc2hpbmdBcmcgPSBj
YWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUp
CiAgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc051bWJlcigpKQotICAgICAgICAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5j
ZUZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbjJCb2R5KGxleGljYWxHbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAoanNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl9lbmFi
bGVkQXRSdW50aW1lT3BlcmF0aW9uMkJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
LCBjYXN0ZWRUaGlzKSkpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLSAgICAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RHbG9iYWxPYmplY3RJbnN0
YW5jZUZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbjFCb2R5KGxleGljYWxHbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsIChqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uX2VuYWJs
ZWRBdFJ1bnRpbWVPcGVyYXRpb24xQm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUs
IGNhc3RlZFRoaXMpKSk7CiAjZW5kaWYKICAgICB9CiAgICAgcmV0dXJuIGFyZ3NDb3VudCA8IDEg
PyB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90
RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpIDogdGhyb3dWTVR5cGVF
cnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKIH0KIAotSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkQXRS
dW50aW1lT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9i
YWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uX2VuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24sIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Y2FsbDxqc1Rl
c3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbk92
ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbmFi
bGVkQXRSdW50aW1lT3BlcmF0aW9uIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpjYWxsPGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25fZW5h
YmxlZEF0UnVudGltZU9wZXJhdGlvbk92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJlbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uIik7CiB9CiAKICNl
bmRpZgogCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvckZ1bmN0aW9uRW5hYmxlZEF0
UnVudGltZU9wZXJhdGlvblN0YXRpY0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3N0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvckZ1bmN0aW9uX2Vu
YWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWNCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgYXV0
byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjQ1OSwxNCArMjQ1OSwxNCBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3Bl
cmF0aW9uU3RhdGljLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxP
YmplY3RDb25zdHJ1Y3RvckZ1bmN0aW9uX2VuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWMs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Y2Fs
bFN0YXRpYzxqc1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvckZ1bmN0aW9uRW5hYmxlZEF0UnVu
dGltZU9wZXJhdGlvblN0YXRpY0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAiZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblN0YXRpYyIpOworICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Y2FsbFN0YXRpYzxqc1Rlc3RHbG9iYWxPYmplY3RD
b25zdHJ1Y3RvckZ1bmN0aW9uX2VuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWNCb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRp
b25TdGF0aWMiKTsKIH0KIAogI2VuZGlmCiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNX
b3JsZEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdEdsb2JhbE9i
amVjdD46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl9lbmFibGVkSW5T
cGVjaWZpY1dvcmxkQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNDgzLDEyICsyNDgzLDEyIEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGQsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVu
Y3Rpb25fZW5hYmxlZEluU3BlY2lmaWNXb3JsZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpjYWxsPGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNl
RnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJlbmFibGVkSW5TcGVjaWZpY1dvcmxkIik7CisgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpjYWxsPGpzVGVzdEdsb2JhbE9iamVjdEluc3Rh
bmNlRnVuY3Rpb25fZW5hYmxlZEluU3BlY2lmaWNXb3JsZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAiZW5hYmxlZEluU3BlY2lmaWNXb3JsZCIpOwogfQogCi1zdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5j
dGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkQm9keShK
U0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSog
Y2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Q2xh
c3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uX2VuYWJsZWRJblNwZWNpZmljV29y
bGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExP
cGVyYXRpb248SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykK
IHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNTA1LDEyICsy
NTA1LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRJblNw
ZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uX2VuYWJsZWRJblNw
ZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdEdsb2JhbE9iamVjdD46OmNhbGw8anNUZXN0R2xvYmFsT2JqZWN0
SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVF
bmFibGVkQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbmFibGVkSW5T
cGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZCIpOworICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RHbG9iYWxPYmplY3RJbnN0
YW5jZUZ1bmN0aW9uX2VuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFi
bGVkQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbmFibGVkSW5TcGVj
aWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZCIpOwogfQogCi1zdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVu
YWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVzRW5hYmxlZEJvZHkoSlNDOjpK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdEdsb2JhbE9iamVjdD46OkNsYXNzUGFy
YW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl9lbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hl
blJ1bnRpbWVGZWF0dXJlc0VuYWJsZWRCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJh
dGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewog
ICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI1MjcsMTMgKzI1Mjcs
MTMgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lm
aWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZXNFbmFibGVkLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uX2VuYWJsZWRJblNwZWNp
ZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVzRW5hYmxlZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpjYWxsPGpzVGVzdEdsb2JhbE9iamVjdElu
c3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlc0Vu
YWJsZWRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImVuYWJsZWRJblNw
ZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVzRW5hYmxlZCIpOworICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RHbG9iYWxPYmplY3RJbnN0
YW5jZUZ1bmN0aW9uX2VuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVzRW5h
YmxlZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW5hYmxlZEluU3Bl
Y2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZXNFbmFibGVkIik7CiB9CiAKICNpZiBFTkFCTEUo
VEVTVF9GRUFUVVJFKQotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25UZXN0UHJpdmF0ZUZ1bmN0aW9uQm9keShKU0M6OkpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZy
YW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Q2xhc3NQYXJh
bWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uX3Rlc3RQcml2YXRlRnVuY3Rpb25Cb2R5KEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBj
YWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpDbGFz
c1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTI1NDUsMTQgKzI1NDUsMTQgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0
YW5jZUZ1bmN0aW9uVGVzdFByaXZhdGVGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl90ZXN0UHJpdmF0ZUZ1bmN0
aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEdsb2JhbE9iamVjdD46
OmNhbGw8anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblRlc3RQcml2YXRlRnVuY3Rp
b25Cb2R5LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgInRlc3RQcml2YXRlRnVuY3Rpb24iKTsKKyAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdEdsb2JhbE9iamVjdD46OmNhbGw8anNUZXN0R2xvYmFsT2JqZWN0SW5z
dGFuY2VGdW5jdGlvbl90ZXN0UHJpdmF0ZUZ1bmN0aW9uQm9keSwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0UHJp
dmF0ZUZ1bmN0aW9uIik7CiB9CiAKICNlbmRpZgogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkNhbGN1bGF0ZVNlY3Jl
dFJlc3VsdEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlND
OjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJv
bWlzZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzLCBSZWY8
RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbl9jYWxjdWxhdGVTZWNyZXRS
ZXN1bHRCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvblJldHVybmluZ1Byb21p
c2U8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcywgUmVmPERl
ZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTI1NjQsMTIgKzI1NjQsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJ
bnN0YW5jZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0UmVzdWx0LCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uX2NhbGN1bGF0ZVNl
Y3JldFJlc3VsdCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvblJldHVybmluZ1Byb21p
c2U8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1
bmN0aW9uQ2FsY3VsYXRlU2VjcmV0UmVzdWx0Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJjYWxjdWxhdGVTZWNyZXRSZXN1bHQiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0
aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpjYWxsPGpzVGVzdEdsb2Jh
bE9iamVjdEluc3RhbmNlRnVuY3Rpb25fY2FsY3VsYXRlU2VjcmV0UmVzdWx0Qm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjYWxjdWxhdGVTZWNyZXRSZXN1bHQiKTsKIH0K
IAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdElu
c3RhbmNlRnVuY3Rpb25HZXRTZWNyZXRCb29sZWFuQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJ
RExPcGVyYXRpb248SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhp
cykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RJ
bnN0YW5jZUZ1bmN0aW9uX2dldFNlY3JldEJvb2xlYW5Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1l
IElETE9wZXJhdGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRU
aGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI1Nzks
MTMgKzI1NzksMTMgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJ
RExCb29sZWFuPihpbXBsLmdldFNlY3JldEJvb2xlYW4oKSkpKTsKIH0KIAotSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25HZXRTZWNyZXRC
b29sZWFuLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJ
bnN0YW5jZUZ1bmN0aW9uX2dldFNlY3JldEJvb2xlYW4sIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RHbG9iYWxPYmplY3RJbnN0
YW5jZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAiZ2V0U2VjcmV0Qm9vbGVhbiIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0
aW9uX2dldFNlY3JldEJvb2xlYW5Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImdldFNlY3JldEJvb2xlYW4iKTsKIH0KIAogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1z
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFu
Y2VGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbkJvZHkoSlNDOjpKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlw
ZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdEdsb2JhbE9iamVjdD46OkNsYXNzUGFyYW1ldGVyIGNh
c3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0SW5zdGFuY2VGdW5jdGlvbl90ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW5Cb2R5KEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBj
YWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpDbGFz
c1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTI1OTUsOSArMjU5NSw5IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKHRvSlM8SURMQm9vbGVhbj4oaW1wbC50ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xl
YW4oKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVj
dEluc3RhbmNlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4sIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25fdGVz
dEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdEdsb2JhbE9iamVjdD46OmNhbGw8anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5j
dGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAidGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuIik7CisgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpjYWxsPGpzVGVzdEdsb2JhbE9iamVj
dEluc3RhbmNlRnVuY3Rpb25fdGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4i
KTsKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyLmNwcAkocmV2aXNpb24gMjY4NTQ3KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
Zmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVy
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyUHJvdG90eXBlRnVuY3Rpb25faW5kZXhlZFNldHRlcik7CiAKIC8vIEF0dHJpYnV0ZXMK
IApAQCAtMTA5LDcgKzEwOSw3IEBAIHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdElu
ZGV4ZWQKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0
aElkZW50aWZpZXJQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3Rv
ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3Ip
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihz
ZXRKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcikgfSB9LAotICAg
IHsgImluZGV4ZWRTZXR0ZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3Rv
dHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlciksIChpbnRwdHJfdCkgKDIpIH0gfSwKKyAgICB7ICJp
bmRleGVkU2V0dGVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVG
dW5jdGlvbl9pbmRleGVkU2V0dGVyKSwgKGludHB0cl90KSAoMikgfSB9LAogfTsKIAogY29uc3Qg
Q2xhc3NJbmZvIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZTo6c19p
bmZvID0geyAiVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIsICZCYXNlOjpzX2luZm8s
IG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0SW5kZXhlZFNldHRl
cldpdGhJZGVudGlmaWVyUHJvdG90eXBlKSB9OwpAQCAtMjc2LDcgKzI3Niw3IEBAIEpTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RJbmRleGUKICAgICByZXR1cm4gcHJvdG90eXBlLT5w
dXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4
ZWRTZXR0ZXJCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
Qzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXI+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllclByb3RvdHlwZUZ1bmN0aW9uX2luZGV4ZWRTZXR0ZXJCb2R5KEpTQzo6SlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5
cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI+OjpD
bGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTI5Niw5ICsyOTYsOSBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBl
RnVuY3Rpb25faW5kZXhlZFNldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI+OjpjYWxsPGpzVGVzdEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlckJvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaW5kZXhlZFNldHRlciIpOworICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyPjo6Y2FsbDxq
c1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbl9pbmRleGVk
U2V0dGVyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJpbmRleGVkU2V0
dGVyIik7CiB9CiAKIEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllcjo6c3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZtKQpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVy
ZmFjZS5jcHAJKHJldmlzaW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NSw5
MSArNzUsOTEgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIC8vIEZ1bmN0aW9ucwogCiAjaWYgRU5B
QkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb24p
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5j
dGlvbl9taXhpbk9wZXJhdGlvbik7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8
IEVOQUJMRShDb25kaXRpb24yMykKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbXBsZXhPcGVyYXRpb24pOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbl9taXhpbkNv
bXBsZXhPcGVyYXRpb24pOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMjMpCi1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFj
ZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5DdXN0b21PcGVyYXRpb24pOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbl9taXhpbkN1c3RvbU9w
ZXJhdGlvbik7CiAjZW5kaWYKICNpZiAoRU5BQkxFKENvbmRpdGlvbjExKSAmJiBFTkFCTEUoQ29u
ZGl0aW9uMjIpKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db25kaXRpb25hbE9wZXJh
dGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlw
ZUZ1bmN0aW9uX21peGluQ29uZGl0aW9uYWxPcGVyYXRpb24pOwogI2VuZGlmCiAjaWYgRU5BQkxF
KENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5TZXR0aW5nc0NvbmRp
dGlvbmFsT3BlcmF0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJm
YWNlUHJvdG90eXBlRnVuY3Rpb25fbWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uKTsK
ICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQot
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlv
bk1peGluUmVzdWx0RmllbGRPcGVyYXRpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbl9taXhpblJlc3VsdEZpZWxkT3BlcmF0aW9u
KTsKICNlbmRpZgogI2lmIChFTkFCTEUoQ29uZGl0aW9uMjIpICYmIEVOQUJMRShDb25kaXRpb24z
MykpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25QYXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9tUGFy
dGlhbCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlw
ZUZ1bmN0aW9uX3BhcnRpYWxNaXhpbk9wZXJhdGlvbkZyb21QYXJ0aWFsKTsKICNlbmRpZgogI2lm
IEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRh
bE1ldGhvZDEpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90
b3R5cGVGdW5jdGlvbl9zdXBwbGVtZW50YWxNZXRob2QxKTsKICNlbmRpZgogI2lmIEVOQUJMRShD
b25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDIp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5j
dGlvbl9zdXBwbGVtZW50YWxNZXRob2QyKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24x
MSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDMpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbl9zdXBw
bGVtZW50YWxNZXRob2QzKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5B
QkxFKENvbmRpdGlvbjEyKQotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZh
Y2VDb25zdHJ1Y3RvckZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kNCk7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yRnVuY3Rpb25fc3VwcGxlbWVu
dGFsTWV0aG9kNCk7CiAjZW5kaWYKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TeW1ib2xJdGVyYXRvcik7Ci1KU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyk7Ci1KU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uS2V5
cyk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1
bmN0aW9uVmFsdWVzKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNl
UHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25fU3ltYm9sSXRlcmF0b3IpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbl9lbnRyaWVz
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25fa2V5cyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVBy
b3RvdHlwZUZ1bmN0aW9uX3ZhbHVlcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uX2ZvckVhY2gpOwogCiAvLyBBdHRyaWJ1dGVzCiAK
IEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IpOwog
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcik7
CiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZU1peGluUmVhZE9ubHlBdHRyaWJ1dGUp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJbnRlcmZhY2VfbWl4aW5SZWFkT25s
eUF0dHJpYnV0ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShD
b25kaXRpb24yMykKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlTWl4
aW5BdHRyaWJ1dGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RJbnRlcmZh
Y2VNaXhpbkF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVy
ZmFjZV9taXhpbkF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dEludGVyZmFjZV9taXhpbkF0dHJpYnV0ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9u
MjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0SW50ZXJmYWNlTWl4aW5DdXN0b21BdHRyaWJ1dGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0ZSk7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZV9taXhpbkN1c3RvbUF0dHJpYnV0ZSk7CitK
U0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEludGVyZmFjZV9taXhpbkN1c3RvbUF0
dHJpYnV0ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25k
aXRpb24yMykKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlTWl4aW5O
b2RlQXR0cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0SW50ZXJm
YWNlTWl4aW5Ob2RlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
SW50ZXJmYWNlX21peGluTm9kZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdEludGVyZmFjZV9taXhpbk5vZGVBdHRyaWJ1dGUpOwogI2VuZGlmCiAjaWYgRU5B
QkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdEludGVyZmFjZVBhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFs
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlX3BhcnRpYWxNaXhp
bkF0dHJpYnV0ZUZyb21QYXJ0aWFsKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkg
fHwgRU5BQkxFKENvbmRpdGlvbjEyKQotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJ
bnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0cik7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yX3N1cHBsZW1l
bnRhbFN0YXRpY1JlYWRPbmx5QXR0cik7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEp
IHx8IEVOQUJMRShDb25kaXRpb24xMikKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyKTsKLUpTQ19ERUNMQVJF
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxT
dGF0aWNBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3Jfc3VwcGxlbWVudGFsU3RhdGljQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yX3N1cHBsZW1lbnRhbFN0YXRpY0F0dHIp
OwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIp
Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0
cjEpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJbnRlcmZhY2Vfc3VwcGxlbWVu
dGFsU3RyMSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25k
aXRpb24xMikKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlU3VwcGxl
bWVudGFsU3RyMik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEludGVyZmFj
ZVN1cHBsZW1lbnRhbFN0cjIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJbnRl
cmZhY2Vfc3VwcGxlbWVudGFsU3RyMik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdEludGVyZmFjZV9zdXBwbGVtZW50YWxTdHIyKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25k
aXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyk7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZV9zdXBwbGVtZW50YWxTdHIzKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0SW50ZXJmYWNlX3N1cHBsZW1lbnRhbFN0cjMpOwog
I2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1K
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUp
OwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50
YWxOb2RlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlX3N1cHBs
ZW1lbnRhbE5vZGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RJbnRlcmZh
Y2Vfc3VwcGxlbWVudGFsTm9kZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8
IEVOQUJMRShDb25kaXRpb24xMikKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0SW50
ZXJmYWNlUmVmbGVjdEF0dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdEludGVyZmFjZVJlZmxlY3RBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RJbnRlcmZhY2VfcmVmbGVjdEF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdEludGVyZmFjZV9yZWZsZWN0QXR0cmlidXRlKTsKICNlbmRpZgogCiBj
bGFzcyBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZp
bmFsT2JqZWN0IHsKQEAgLTIyNiwxNyArMjI2LDE3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVW
YWx1ZSBKU1Rlc3RJbnRlcmYKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAog
I2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0g
ICAgeyAic3VwcGxlbWVudGFsU3RhdGljUmVhZE9ubHlBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRl
cmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0ciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAg
ICB7ICJzdXBwbGVtZW50YWxTdGF0aWNSZWFkT25seUF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVy
ZmFjZUNvbnN0cnVjdG9yX3N1cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0ciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKICNl
bHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIEVO
QUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotICAgIHsgInN1cHBsZW1l
bnRhbFN0YXRpY0F0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oMCksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0SW50ZXJm
YWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyKSB9IH0sCisgICAgeyAic3VwcGxl
bWVudGFsU3RhdGljQXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPigwKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcl9zdXBwbGVtZW50YWxTdGF0aWNBdHRyKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0SW50
ZXJmYWNlQ29uc3RydWN0b3Jfc3VwcGxlbWVudGFsU3RhdGljQXR0cikgfSB9LAogI2Vsc2UKICAg
ICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENv
bmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAgeyAic3VwcGxlbWVudGFsTWV0
aG9kNCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5j
dGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5j
dGlvbj4oanNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhv
ZDQpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAic3VwcGxlbWVudGFsTWV0aG9kNCIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JGdW5jdGlvbl9zdXBwbGVtZW50YWxNZXRob2Q0KSwgKGlu
dHB0cl90KSAoMCkgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAg
fSB9LAogI2VuZGlmCkBAIC0zMDgsNTIgKzMwOCw1MiBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxl
VmFsdWUgSlNUZXN0SW50ZXJmCiB7CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dEludGVyZmFjZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IpIH0gfSwK
ICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLSAgICB7ICJt
aXhpblJlYWRPbmx5QXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdEludGVyZmFjZU1peGluUmVhZE9ubHlBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAibWl4aW5S
ZWFkT25seUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29y
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJ
bnRlcmZhY2VfbWl4aW5SZWFkT25seUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKICNlbHNlCiAgICAgeyAwLCAw
LCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24y
MikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsgIm1peGluQXR0cmlidXRlIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRl
cmZhY2VNaXhpbkF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEludGVyZmFjZU1peGluQXR0cmlidXRlKSB9IH0s
CisgICAgeyAibWl4aW5BdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
T01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZV9taXhpbkF0dHJpYnV0ZSksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpT
VGVzdEludGVyZmFjZV9taXhpbkF0dHJpYnV0ZSkgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5v
SW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8
fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi0gICAgeyAibWl4aW5DdXN0b21BdHRyaWJ1dGUiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3Ig
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdElu
dGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5DdXN0b21B
dHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJtaXhpbkN1c3RvbUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNl
X21peGluQ3VzdG9tQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0SW50ZXJmYWNlX21peGluQ3VzdG9tQXR0cmli
dXRlKSB9IH0sCiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAj
ZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLSAg
ICB7ICJtaXhpbk5vZGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
T01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZSks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZSkgfSB9LAorICAgIHsgIm1peGluTm9k
ZUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlX21peGluTm9kZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEludGVy
ZmFjZV9taXhpbk5vZGVBdHRyaWJ1dGUpIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJp
bnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5B
QkxFKENvbmRpdGlvbjIzKQotICAgIHsgInBhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFs
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZVBhcnRpYWxN
aXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgInBhcnRpYWxNaXhpbkF0dHJp
YnV0ZUZyb21QYXJ0aWFsIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3Ig
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdElu
dGVyZmFjZV9wYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbCksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKICNlbHNlCiAg
ICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIEVOQUJMRShD
b25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotICAgIHsgInN1cHBsZW1lbnRhbFN0
cjEiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlU3VwcGxl
bWVudGFsU3RyMSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJzdXBwbGVtZW50YWxTdHIxIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01B
dHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZV9zdXBwbGVtZW50YWxTdHIxKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9
LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCiAj
aWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAgeyAic3Vw
cGxlbWVudGFsU3RyMiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0
ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMiksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEludGVy
ZmFjZVN1cHBsZW1lbnRhbFN0cjIpIH0gfSwKKyAgICB7ICJzdXBwbGVtZW50YWxTdHIyIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29y
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJ
bnRlcmZhY2Vfc3VwcGxlbWVudGFsU3RyMiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEludGVyZmFjZV9zdXBwbGVtZW50YWxT
dHIyKSB9IH0sCiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAj
ZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAg
ICB7ICJzdXBwbGVtZW50YWxTdHIzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9N
QXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMykgfSB9LAorICAgIHsgInN1cHBsZW1lbnRhbFN0
cjMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9t
QWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdEludGVyZmFjZV9zdXBwbGVtZW50YWxTdHIzKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0SW50ZXJmYWNlX3N1cHBs
ZW1lbnRhbFN0cjMpIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAw
IH0gfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlv
bjEyKQotICAgIHsgInN1cHBsZW1lbnRhbE5vZGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5v
ZGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PihzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKSB9IH0sCisgICAgeyAic3VwcGxl
bWVudGFsTm9kZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlX3N1cHBsZW1lbnRhbE5vZGUpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RJbnRlcmZh
Y2Vfc3VwcGxlbWVudGFsTm9kZSkgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2lj
LCB7IDAsIDAgfSB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMTIpCi0gICAgeyAicmVmbGVjdEF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlUmVmbGVj
dEF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdEludGVyZmFjZVJlZmxlY3RBdHRyaWJ1dGUpIH0gfSwKKyAgICB7
ICJyZWZsZWN0QXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0
cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VfcmVmbGVjdEF0dHJpYnV0ZSksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVz
dEludGVyZmFjZV9yZWZsZWN0QXR0cmlidXRlKSB9IH0sCiAjZWxzZQogICAgIHsgMCwgMCwgTm9J
bnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKQEAgLTM2Myw1MiArMzYzLDUyIEBAIHN0YXRp
YyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RJbnRlcmYKICAgICB7IDAsIDAsIE5vSW50cmlu
c2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMjMpCi0gICAgeyAibWl4aW5PcGVyYXRpb24iLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEludGVyZmFjZVBy
b3RvdHlwZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAg
eyAibWl4aW5PcGVyYXRpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uX21peGlu
T3BlcmF0aW9uKSwgKGludHB0cl90KSAoMCkgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50
cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBF
TkFCTEUoQ29uZGl0aW9uMjMpCi0gICAgeyAibWl4aW5Db21wbGV4T3BlcmF0aW9uIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RJ
bnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluQ29tcGxleE9wZXJhdGlvbiksIChpbnRwdHJf
dCkgKDIpIH0gfSwKKyAgICB7ICJtaXhpbkNvbXBsZXhPcGVyYXRpb24iLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEludGVyZmFj
ZVByb3RvdHlwZUZ1bmN0aW9uX21peGluQ29tcGxleE9wZXJhdGlvbiksIChpbnRwdHJfdCkgKDIp
IH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRp
ZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsg
Im1peGluQ3VzdG9tT3BlcmF0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1p
eGluQ3VzdG9tT3BlcmF0aW9uKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgIm1peGluQ3Vz
dG9tT3BlcmF0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbl9taXhpbkN1c3Rv
bU9wZXJhdGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0lu
dHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIChFTkFCTEUoQ29uZGl0aW9uMTEpICYm
IEVOQUJMRShDb25kaXRpb24yMikpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLSAgICB7ICJtaXhp
bkNvbmRpdGlvbmFsT3BlcmF0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1p
eGluQ29uZGl0aW9uYWxPcGVyYXRpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAibWl4
aW5Db25kaXRpb25hbE9wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25f
bWl4aW5Db25kaXRpb25hbE9wZXJhdGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwKICNlbHNlCiAg
ICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIEVOQUJMRShD
b25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsgIm1peGluU2V0dGluZ3ND
b25kaXRpb25hbE9wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhp
blNldHRpbmdzQ29uZGl0aW9uYWxPcGVyYXRpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAg
eyAibWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RJbnRlcmZhY2VQcm90
b3R5cGVGdW5jdGlvbl9taXhpblNldHRpbmdzQ29uZGl0aW9uYWxPcGVyYXRpb24pLCAoaW50cHRy
X3QpICgwKSB9IH0sCiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0s
CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykK
LSAgICB7ICJtaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5
cGVGdW5jdGlvbk1peGluUmVzdWx0RmllbGRPcGVyYXRpb24pLCAoaW50cHRyX3QpICgwKSB9IH0s
CisgICAgeyAibWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0SW50ZXJmYWNlUHJvdG90
eXBlRnVuY3Rpb25fbWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbiksIChpbnRwdHJfdCkgKDApIH0g
fSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgog
I2lmIChFTkFCTEUoQ29uZGl0aW9uMjIpICYmIEVOQUJMRShDb25kaXRpb24zMykpIHx8IEVOQUJM
RShDb25kaXRpb24yMykKLSAgICB7ICJwYXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9tUGFydGlhbCIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4o
anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25QYXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9t
UGFydGlhbCksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJwYXJ0aWFsTWl4aW5PcGVyYXRp
b25Gcm9tUGFydGlhbCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdO
YXRpdmVGdW5jdGlvbj4oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25fcGFydGlhbE1p
eGluT3BlcmF0aW9uRnJvbVBhcnRpYWwpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAjZWxzZQogICAg
IHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKICNpZiBFTkFCTEUoQ29u
ZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLSAgICB7ICJzdXBwbGVtZW50YWxNZXRo
b2QxIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0
aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDEp
LCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAic3VwcGxlbWVudGFsTWV0aG9kMSIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0
SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25fc3VwcGxlbWVudGFsTWV0aG9kMSksIChpbnRwdHJf
dCkgKDApIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwK
ICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQot
ICAgIHsgInN1cHBsZW1lbnRhbE1ldGhvZDIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0
aW9uU3VwcGxlbWVudGFsTWV0aG9kMiksIChpbnRwdHJfdCkgKDIpIH0gfSwKKyAgICB7ICJzdXBw
bGVtZW50YWxNZXRob2QyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJh
d05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbl9zdXBwbGVt
ZW50YWxNZXRob2QyKSwgKGludHB0cl90KSAoMikgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5v
SW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8
fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAgeyAic3VwcGxlbWVudGFsTWV0aG9kMyIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0
SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QzKSwgKGludHB0cl90
KSAoMCkgfSB9LAorICAgIHsgInN1cHBsZW1lbnRhbE1ldGhvZDMiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEludGVyZmFjZVBy
b3RvdHlwZUZ1bmN0aW9uX3N1cHBsZW1lbnRhbE1ldGhvZDMpLCAoaW50cHRyX3QpICgwKSB9IH0s
CiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKQEAg
LTQxNywxMCArNDE3LDEwIEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RJbnRl
cmYKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgot
ICAgIHsgImVudHJpZXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyks
IChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJrZXlzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5
cGVGdW5jdGlvbktleXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAidmFsdWVzIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyksIChpbnRwdHJfdCkgKDApIH0gfSwK
LSAgICB7ICJmb3JFYWNoIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJh
d05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gp
LCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAiZW50cmllcyIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0SW50ZXJmYWNlUHJv
dG90eXBlRnVuY3Rpb25fZW50cmllcyksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJrZXlz
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbl9rZXlzKSwgKGludHB0cl90KSAoMCkg
fSB9LAorICAgIHsgInZhbHVlcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25fdmFs
dWVzKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgImZvckVhY2giLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEludGVyZmFj
ZVByb3RvdHlwZUZ1bmN0aW9uX2ZvckVhY2gpLCAoaW50cHRyX3QpICgxKSB9IH0sCiAjaWYgRU5B
QkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCiAgICAgeyAiTUlYSU5fQ09O
U1RBTlQiLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDb25zdGFudElu
dGVnZXIsIE5vSW50cmluc2ljLCB7IChsb25nIGxvbmcpKDEpIH0gfSwKICNlbHNlCkBAIC01NDEs
NyArNTQxLDcgQEAgSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEludGVyZgogfQog
CiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1zdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlTWl4aW5SZWFkT25seUF0dHJpYnV0ZUdldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0SW50ZXJmYWNlJiB0
aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZV9taXhpblJl
YWRPbmx5QXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RJbnRlcmZhY2UmIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTU0OSwxNSArNTQ5LDE1IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RJbnRlcmZhY2VNaXgKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBp
bXBsLm1peGluUmVhZE9ubHlBdHRyaWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdEludGVyZmFjZU1peGluUmVhZE9ubHlBdHRyaWJ1dGUsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZV9taXhp
blJlYWRPbmx5QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VNaXhpblJl
YWRPbmx5QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibWl4aW5SZWFkT25seUF0dHJpYnV0ZSIp
OworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdElu
dGVyZmFjZV9taXhpblJlYWRPbmx5QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibWl4aW5SZWFk
T25seUF0dHJpYnV0ZSIpOwogfQogCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24yMikg
fHwgRU5BQkxFKENvbmRpdGlvbjIzKQotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVy
ZmFjZU1peGluQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1Rlc3RJbnRlcmZhY2UmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0SW50ZXJmYWNlX21peGluQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RJbnRlcmZhY2UmIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0
byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTU2NSwxNSArNTY1LDE1IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VNaXgKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLm1peGluQXR0cmlidXRlKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJpYnV0ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlX21peGlu
QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEludGVyZmFjZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJpYnV0ZUdl
dHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgIm1peGluQXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXQ8anNUZXN0SW50ZXJmYWNlX21peGluQXR0cmlidXRlR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAibWl4aW5BdHRyaWJ1dGUiKTsKIH0KIAogI2VuZGlmCiAKICNpZiBFTkFC
TEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLXN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0SW50ZXJmYWNlJiB0aGlzT2JqZWN0LCBKU1ZhbHVl
IHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEludGVyZmFjZV9taXhpbkF0dHJp
YnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0SW50
ZXJmYWNlJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01ODYsNDQgKzU4Niw0NCBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlTWl4CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJpYnV0ZSwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0SW50ZXJmYWNlX21peGluQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVy
ZmFjZT46OnNldDxzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJpYnV0ZVNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibWl4aW5BdHRyaWJ1dGUi
KTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OnNldDxzZXRKU1Rl
c3RJbnRlcmZhY2VfbWl4aW5BdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm1peGluQXR0cmlidXRlIik7CiB9CiAKICNlbmRpZgog
CiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1zdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlTWl4aW5DdXN0b21BdHRyaWJ1dGVHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEludGVyZmFjZSYgdGhp
c09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VfbWl4aW5DdXN0
b21BdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VGVzdEludGVyZmFjZSYgdGhpc09iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIHRoaXNPYmplY3QubWl4aW5DdXN0b21BdHRyaWJ1dGUo
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlX21peGluQ3VzdG9tQXR0cmli
dXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEludGVyZmFjZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0ZUdl
dHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgIm1peGluQ3VzdG9tQXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXQ8anNUZXN0SW50ZXJmYWNlX21peGluQ3VzdG9t
QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibWl4aW5DdXN0b21BdHRyaWJ1dGUiKTsKIH0KIAog
I2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykK
LXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0
ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0SW50ZXJm
YWNlJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdEludGVyZmFjZV9taXhpbkN1c3RvbUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0SW50ZXJmYWNlJiB0aGlzT2JqZWN0LCBKU1ZhbHVl
IHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgdGhpc09iamVjdC5zZXRNaXhpbkN1c3RvbUF0dHJpYnV0ZShsZXhpY2FsR2xvYmFs
T2JqZWN0LCB2YWx1ZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0ZSwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0SW50ZXJmYWNlX21peGluQ3VzdG9tQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVy
ZmFjZT46OnNldDxzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0ZVNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibWl4aW5DdXN0
b21BdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46
OnNldDxzZXRKU1Rlc3RJbnRlcmZhY2VfbWl4aW5DdXN0b21BdHRyaWJ1dGVTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm1peGluQ3VzdG9tQXR0
cmlidXRlIik7CiB9CiAKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMjMpCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlTWl4
aW5Ob2RlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RJbnRlcmZhY2UmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0SW50ZXJmYWNlX21peGluTm9kZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0SW50ZXJmYWNlJiB0aGlzT2JqZWN0KQogewogICAgIGF1
dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02MzEsMTUgKzYzMSwxNSBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlTWl4CiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxOb2RlPj4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwubWl4
aW5Ob2RlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RJbnRlcmZhY2VNaXhpbk5vZGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZV9taXhpbk5vZGVBdHRyaWJ1dGUs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZUdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgIm1peGluTm9kZUF0dHJpYnV0ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdEludGVyZmFjZV9taXhpbk5vZGVBdHRyaWJ1dGVH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJtaXhpbk5vZGVBdHRyaWJ1dGUiKTsKIH0KIAogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLXN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbk5vZGVBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEludGVyZmFjZSYgdGhpc09iamVj
dCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2Vf
bWl4aW5Ob2RlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1Rlc3RJbnRlcmZhY2UmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTY1MiwxNSArNjUyLDE1IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VNaXgKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEludGVyZmFjZU1peGlu
Tm9kZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0SW50ZXJmYWNlX21peGluTm9kZUF0dHJpYnV0
ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpzZXQ8c2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5O
b2RlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJtaXhpbk5vZGVBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEludGVyZmFjZT46OnNldDxzZXRKU1Rlc3RJbnRlcmZhY2VfbWl4aW5Ob2RlQXR0cmli
dXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJtaXhpbk5vZGVBdHRyaWJ1dGUiKTsKIH0KIAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0
aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RJbnRlcmZhY2VQYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbEdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0SW50ZXJmYWNlJiB0aGlzT2JqZWN0
KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZV9wYXJ0aWFsTWl4aW5BdHRy
aWJ1dGVGcm9tUGFydGlhbEdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNUZXN0SW50ZXJmYWNlJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC02NjgsNDUgKzY2OCw0NSBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0SW50ZXJmYWNlUGFyCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETERvdWJsZT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1w
bC5wYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbCgpKSkpOwogfQogCi1KU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlUGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBh
cnRpYWwsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdEludGVyZmFjZV9wYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbCwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+
OjpnZXQ8anNUZXN0SW50ZXJmYWNlUGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWxHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJwYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbCIpOworICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdEludGVyZmFjZV9w
YXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInBhcnRpYWxN
aXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsIik7CiB9CiAKICNlbmRpZgogCiAjaWYgRU5BQkxFKENv
bmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNSZWFkT25seUF0dHJH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QpCitzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3Jfc3VwcGxlbWVudGFsU3RhdGljUmVh
ZE9ubHlBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0KQogewog
ICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbFN0YXRpY1Jl
YWRPbmx5QXR0cigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0SW50
ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNSZWFkT25seUF0dHIsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9yX3N1cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0ciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXRT
dGF0aWM8anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNSZWFkT25s
eUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdXBwbGVtZW50
YWxTdGF0aWNSZWFkT25seUF0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdElu
dGVyZmFjZT46OmdldFN0YXRpYzxqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcl9zdXBwbGVtZW50
YWxTdGF0aWNSZWFkT25seUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJzdXBwbGVtZW50YWxTdGF0aWNSZWFkT25seUF0dHIiKTsKIH0KIAogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLXN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0
dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QpCitzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3Jfc3VwcGxlbWVudGFsU3RhdGlj
QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCkKIHsKICAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbFN0YXRpY0F0
dHIoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3Jfc3VwcGxl
bWVudGFsU3RhdGljQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXRTdGF0aWM8anNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAic3VwcGxlbWVudGFsU3RhdGljQXR0ciIpOworICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Z2V0U3RhdGljPGpzVGVzdEludGVyZmFjZUNvbnN0
cnVjdG9yX3N1cHBsZW1lbnRhbFN0YXRpY0F0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJzdXBwbGVtZW50YWxTdGF0aWNBdHRyIik7CiB9CiAKICNlbmRpZgogCiAj
aWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1zdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNB
dHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZh
bHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yX3N1
cHBsZW1lbnRhbFN0YXRpY0F0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTcxOCwxNSArNzE4LDE1IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RJbnRlcmZhY2VDb24KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3Jfc3VwcGxlbWVudGFsU3RhdGlj
QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpzZXRTdGF0aWM8c2V0SlNUZXN0SW50ZXJm
YWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdXBwbGVtZW50YWxTdGF0aWNBdHRy
Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpzZXRTdGF0aWM8
c2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3Jfc3VwcGxlbWVudGFsU3RhdGljQXR0clNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3VwcGxl
bWVudGFsU3RhdGljQXR0ciIpOwogfQogCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24x
MSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdElu
dGVyZmFjZVN1cHBsZW1lbnRhbFN0cjFHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdEludGVyZmFjZSYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RJbnRlcmZhY2Vfc3VwcGxlbWVudGFsU3RyMUdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0SW50ZXJmYWNlJiB0aGlzT2JqZWN0KQogewog
ICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC03MzQsMTUgKzczNCwx
NSBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVu
dGFsU3RyMShpbXBsKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdElu
dGVyZmFjZVN1cHBsZW1lbnRhbFN0cjEsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZV9zdXBwbGVtZW50YWxTdHIxLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFj
ZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIxR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
c3VwcGxlbWVudGFsU3RyMSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJm
YWNlPjo6Z2V0PGpzVGVzdEludGVyZmFjZV9zdXBwbGVtZW50YWxTdHIxR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAic3VwcGxlbWVudGFsU3RyMSIpOwogfQogCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRp
b24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdEludGVyZmFjZSYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2Vfc3VwcGxlbWVudGFsU3RyMkdldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0SW50ZXJmYWNlJiB0aGlzT2JqZWN0KQog
ewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC03NTAsMTUgKzc1
MCwxNSBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxl
bWVudGFsU3RyMihpbXBsKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZV9zdXBwbGVtZW50YWxTdHIyLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVy
ZmFjZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAic3VwcGxlbWVudGFsU3RyMiIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50
ZXJmYWNlPjo6Z2V0PGpzVGVzdEludGVyZmFjZV9zdXBwbGVtZW50YWxTdHIyR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAic3VwcGxlbWVudGFsU3RyMiIpOwogfQogCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25k
aXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTVGVzdEludGVyZmFjZSYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1
ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2Vfc3VwcGxlbWVudGFsU3Ry
MlNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0SW50ZXJm
YWNlJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC03NzEsNDQgKzc3MSw0NCBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0SW50ZXJmYWNlU3VwCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RJbnRlcmZhY2Vfc3VwcGxlbWVudGFsU3RyMiwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRl
cmZhY2U+OjpzZXQ8c2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMlNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3VwcGxlbWVudGFs
U3RyMiIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6c2V0PHNl
dEpTVGVzdEludGVyZmFjZV9zdXBwbGVtZW50YWxTdHIyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdXBwbGVtZW50YWxTdHIyIik7CiB9CiAK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIp
Ci1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyM0dl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0SW50ZXJmYWNl
JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZV9zdXBw
bGVtZW50YWxTdHIzR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3RJbnRlcmZhY2UmIHRoaXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIHJldHVybiB0aGlzT2JqZWN0LnN1cHBsZW1lbnRhbFN0cjMobGV4
aWNhbEdsb2JhbE9iamVjdCk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJ
bnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJbnRlcmZhY2Vfc3VwcGxlbWVudGFsU3RyMywgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZh
Y2U+OjpnZXQ8anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyM0dldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
InN1cHBsZW1lbnRhbFN0cjMiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVy
ZmFjZT46OmdldDxqc1Rlc3RJbnRlcmZhY2Vfc3VwcGxlbWVudGFsU3RyM0dldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInN1cHBsZW1lbnRhbFN0cjMiKTsKIH0KIAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0
aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RJbnRlcmZhY2UmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUp
CitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlX3N1cHBsZW1lbnRhbFN0cjNT
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEludGVyZmFj
ZSYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHRoaXNPYmplY3Quc2V0U3VwcGxlbWVudGFs
U3RyMyhsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxT
dHIzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RJbnRlcmZhY2Vfc3VwcGxlbWVudGFsU3RyMywgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RJbnRlcmZhY2U+OjpzZXQ8c2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyM1Nl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3Vw
cGxlbWVudGFsU3RyMyIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNl
Pjo6c2V0PHNldEpTVGVzdEludGVyZmFjZV9zdXBwbGVtZW50YWxTdHIzU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdXBwbGVtZW50YWxTdHIz
Iik7CiB9CiAKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMTIpCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVu
dGFsTm9kZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0
SW50ZXJmYWNlJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVy
ZmFjZV9zdXBwbGVtZW50YWxOb2RlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RJbnRlcmZhY2UmIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTgxNiwxNSArODE2LDE1IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXAKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgV2ViQ29yZTo6VGVzdFN1cHBs
ZW1lbnRhbDo6c3VwcGxlbWVudGFsTm9kZShpbXBsKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdEludGVyZmFjZV9zdXBwbGVt
ZW50YWxOb2RlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEludGVyZmFjZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2Rl
R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAic3VwcGxlbWVudGFsTm9kZSIpOworICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdEludGVyZmFjZV9zdXBwbGVtZW50YWxO
b2RlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAic3VwcGxlbWVudGFsTm9kZSIpOwogfQogCiAjZW5kaWYKIAog
I2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGVTZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEludGVyZmFjZSYgdGhpc09iamVj
dCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2Vf
c3VwcGxlbWVudGFsTm9kZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNUZXN0SW50ZXJmYWNlJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1
dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04MzcsMTUgKzgzNywxNSBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlU3VwCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVt
ZW50YWxOb2RlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RJbnRlcmZhY2Vfc3VwcGxlbWVudGFsTm9kZSwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpzZXQ8c2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFs
Tm9kZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAic3VwcGxlbWVudGFsTm9kZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50
ZXJmYWNlPjo6c2V0PHNldEpTVGVzdEludGVyZmFjZV9zdXBwbGVtZW50YWxOb2RlU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdXBwbGVtZW50
YWxOb2RlIik7CiB9CiAKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMTIpCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlUmVm
bGVjdEF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNUZXN0SW50ZXJmYWNlJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dEludGVyZmFjZV9yZWZsZWN0QXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RJbnRlcmZhY2UmIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYg
dm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg1MywxNSArODUzLDE1IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VSZWYKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6
SFRNTE5hbWVzOjpyZWZsZWN0YXR0cmlidXRlQXR0cikpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RJbnRlcmZhY2VSZWZsZWN0QXR0cmlidXRlLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RJbnRlcmZhY2VfcmVmbGVj
dEF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXQ8anNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0dHJpYnV0
ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEludGVyZmFjZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VfcmVmbGVjdEF0dHJp
YnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RBdHRyaWJ1dGUiKTsKIH0KIAogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLXN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VSZWZsZWN0QXR0cmlidXRlU2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RJbnRlcmZhY2UmIHRoaXNPYmpl
Y3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNl
X3JlZmxlY3RBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTVGVzdEludGVyZmFjZSYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODc0LDE1ICs4NzQsMTUgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEludGVyZmFjZVJlZgogICAgIHJldHVybiB0cnVl
OwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0SW50ZXJmYWNlUmVmbGVj
dEF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVG
SU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0SW50ZXJmYWNlX3JlZmxlY3RBdHRyaWJ1dGUsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6c2V0PHNldEpTVGVzdEludGVyZmFjZVJlZmxlY3RBdHRy
aWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgInJlZmxlY3RBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdElu
dGVyZmFjZT46OnNldDxzZXRKU1Rlc3RJbnRlcmZhY2VfcmVmbGVjdEF0dHJpYnV0ZVNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdEF0
dHJpYnV0ZSIpOwogfQogCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5B
QkxFKENvbmRpdGlvbjIzKQotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb25Cb2R5KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUs
IHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpDbGFzc1BhcmFtZXRlciBj
YXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVy
ZmFjZVByb3RvdHlwZUZ1bmN0aW9uX21peGluT3BlcmF0aW9uQm9keShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBl
bmFtZSBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVk
VGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04OTQs
MTUgKzg5NCwxNSBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5PcGVy
YXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3Rv
dHlwZUZ1bmN0aW9uX21peGluT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdEludGVyZmFjZT46OmNhbGw8anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rp
b25NaXhpbk9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
bWl4aW5PcGVyYXRpb24iKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFj
ZT46OmNhbGw8anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25fbWl4aW5PcGVyYXRpb25C
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1peGluT3BlcmF0aW9uIik7
CiB9CiAKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMjMpCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNl
UHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbXBsZXhPcGVyYXRpb25Cb2R5KEpTQzo6SlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5
cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0
ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFj
ZVByb3RvdHlwZUZ1bmN0aW9uX21peGluQ29tcGxleE9wZXJhdGlvbkJvZHkoSlNDOjpKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
dHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OkNsYXNzUGFyYW1ldGVyIGNh
c3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
OTIzLDE1ICs5MjMsMTUgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9K
UzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhp
cy0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwubWl4aW5Db21wbGV4T3BlcmF0aW9u
KCpjb250ZXh0LCBXVEZNb3ZlKHN0ckFyZyksICpvYmpBcmcpKSkpOwogfQogCi1KU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbXBs
ZXhPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFj
ZVByb3RvdHlwZUZ1bmN0aW9uX21peGluQ29tcGxleE9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdEludGVyZmFjZVBy
b3RvdHlwZUZ1bmN0aW9uTWl4aW5Db21wbGV4T3BlcmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJtaXhpbkNvbXBsZXhPcGVyYXRpb24iKTsKKyAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OmNhbGw8anNUZXN0SW50ZXJmYWNlUHJvdG90
eXBlRnVuY3Rpb25fbWl4aW5Db21wbGV4T3BlcmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJtaXhpbkNvbXBsZXhPcGVyYXRpb24iKTsKIH0KIAogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLXN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlv
bk1peGluQ3VzdG9tT3BlcmF0aW9uQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRp
b248SlNUZXN0SW50ZXJmYWNlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlv
bl9taXhpbkN1c3RvbU9wZXJhdGlvbkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0
aW9uPEpTVGVzdEludGVyZmFjZT46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTQwLDE1ICs5NDAsMTUgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAoSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPm1peGluQ3Vz
dG9tT3BlcmF0aW9uKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lKSkpKTsKIH0KIAot
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9u
TWl4aW5DdXN0b21PcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uX21peGluQ3VzdG9tT3BlcmF0aW9uLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
LSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OmNhbGw8anNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJhdGlvbkJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWl4aW5DdXN0b21PcGVyYXRpb24iKTsKKyAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OmNhbGw8anNUZXN0SW50ZXJmYWNl
UHJvdG90eXBlRnVuY3Rpb25fbWl4aW5DdXN0b21PcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgIm1peGluQ3VzdG9tT3BlcmF0aW9uIik7CiB9CiAKICNlbmRp
ZgogCiAjaWYgKEVOQUJMRShDb25kaXRpb24xMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIyKSkgfHwg
RU5BQkxFKENvbmRpdGlvbjIzKQotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db25kaXRpb25hbE9wZXJhdGlvbkJv
ZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OkNs
YXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25fbWl4aW5Db25kaXRpb25hbE9wZXJh
dGlvbkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFj
ZT46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtOTYwLDE1ICs5NjAsMTUgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQ
cm90b3R5cGVGdW5jdGlvbk1peGluQ29uZGl0aW9uYWxPcGVyYXRpb24sIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uX21peGluQ29u
ZGl0aW9uYWxPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
SW50ZXJmYWNlPjo6Y2FsbDxqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluQ29u
ZGl0aW9uYWxPcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
Im1peGluQ29uZGl0aW9uYWxPcGVyYXRpb24iKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdEludGVyZmFjZT46OmNhbGw8anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25fbWl4
aW5Db25kaXRpb25hbE9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAibWl4aW5Db25kaXRpb25hbE9wZXJhdGlvbiIpOwogfQogCiAjZW5kaWYKIAogI2lmIEVO
QUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5T
ZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExP
cGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVG
dW5jdGlvbl9taXhpblNldHRpbmdzQ29uZGl0aW9uYWxPcGVyYXRpb25Cb2R5KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUs
IHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpDbGFzc1BhcmFtZXRlciBj
YXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTk4MCwxNSArOTgwLDE1IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhp
blNldHRpbmdzQ29uZGl0aW9uYWxPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uX21peGluU2V0dGluZ3NDb25kaXRp
b25hbE9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRl
cmZhY2U+OjpjYWxsPGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5TZXR0aW5n
c0NvbmRpdGlvbmFsT3BlcmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJtaXhpblNldHRpbmdzQ29uZGl0aW9uYWxPcGVyYXRpb24iKTsKKyAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OmNhbGw8anNUZXN0SW50ZXJmYWNlUHJvdG90eXBl
RnVuY3Rpb25fbWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtaXhpblNldHRpbmdzQ29uZGl0aW9uYWxPcGVyYXRp
b24iKTsKIH0KIAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShD
b25kaXRpb24yMykKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRl
cmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluUmVzdWx0RmllbGRPcGVyYXRpb25Cb2R5KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxs
RnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpDbGFzc1BhcmFt
ZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uX21peGluUmVzdWx0RmllbGRPcGVyYXRpb25Cb2R5
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1l
KiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpDbGFz
c1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTk5OSwxNSArOTk5LDE1IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKHRvSlM8SURMU2VxdWVuY2U8SURMSW50ZXJmYWNlPE5vZGU+Pj4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGTW92ZShpbXBsUmVz
dWx0Lm5vZGVzKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVy
ZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbiwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25fbWl4
aW5SZXN1bHRGaWVsZE9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4
aW5SZXN1bHRGaWVsZE9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAibWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbiIpOworICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0SW50ZXJmYWNlPjo6Y2FsbDxqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlv
bl9taXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJtaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uIik7CiB9CiAKICNlbmRpZgogCiAj
aWYgKEVOQUJMRShDb25kaXRpb24yMikgJiYgRU5BQkxFKENvbmRpdGlvbjMzKSkgfHwgRU5BQkxF
KENvbmRpdGlvbjIzKQotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdElu
dGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uUGFydGlhbE1peGluT3BlcmF0aW9uRnJvbVBhcnRpYWxC
b2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZy
YW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpD
bGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uX3BhcnRpYWxNaXhpbk9wZXJhdGlv
bkZyb21QYXJ0aWFsQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0
SW50ZXJmYWNlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMDE5LDE1ICsxMDE5LDE1IEBAIHN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25QYXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9tUGFydGlh
bCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBl
RnVuY3Rpb25fcGFydGlhbE1peGluT3BlcmF0aW9uRnJvbVBhcnRpYWwsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6Y2FsbDxqc1Rlc3RJbnRlcmZhY2VQ
cm90b3R5cGVGdW5jdGlvblBhcnRpYWxNaXhpbk9wZXJhdGlvbkZyb21QYXJ0aWFsQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJwYXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9t
UGFydGlhbCIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6Y2Fs
bDxqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbl9wYXJ0aWFsTWl4aW5PcGVyYXRpb25G
cm9tUGFydGlhbEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAicGFydGlh
bE1peGluT3BlcmF0aW9uRnJvbVBhcnRpYWwiKTsKIH0KIAogI2VuZGlmCiAKICNpZiBFTkFCTEUo
Q29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLXN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRh
bE1ldGhvZDFCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
Qzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRl
cmZhY2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uX3N1cHBsZW1lbnRh
bE1ldGhvZDFCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
Qzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRl
cmZhY2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEwMzksMTUgKzEwMzksMTUgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRl
cmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDEsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uX3N1cHBsZW1l
bnRhbE1ldGhvZDEsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJm
YWNlPjo6Y2FsbDxqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1l
dGhvZDFCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInN1cHBsZW1lbnRh
bE1ldGhvZDEiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OmNh
bGw8anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25fc3VwcGxlbWVudGFsTWV0aG9kMUJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAic3VwcGxlbWVudGFsTWV0aG9k
MSIpOwogfQogCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENv
bmRpdGlvbjEyKQotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVy
ZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMkJvZHkoSlNDOjpKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
dHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OkNsYXNzUGFyYW1ldGVyIGNh
c3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJm
YWNlUHJvdG90eXBlRnVuY3Rpb25fc3VwcGxlbWVudGFsTWV0aG9kMkJvZHkoSlNDOjpKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
dHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OkNsYXNzUGFyYW1ldGVyIGNh
c3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MTA2OCwxNSArMTA2OCwxNSBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0
b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRU
aGlzLT5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRh
bDo6c3VwcGxlbWVudGFsTWV0aG9kMihpbXBsLCAqY29udGV4dCwgV1RGTW92ZShzdHJBcmcpLCAq
b2JqQXJnKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFj
ZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMiwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25fc3VwcGxlbWVudGFs
TWV0aG9kMiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+
OjpjYWxsPGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9k
MkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAic3VwcGxlbWVudGFsTWV0
aG9kMiIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6Y2FsbDxq
c1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbl9zdXBwbGVtZW50YWxNZXRob2QyQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJzdXBwbGVtZW50YWxNZXRob2QyIik7
CiB9CiAKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMTIpCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNl
UHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QzQm9keShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBl
bmFtZSBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVk
VGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQ
cm90b3R5cGVGdW5jdGlvbl9zdXBwbGVtZW50YWxNZXRob2QzQm9keShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBl
bmFtZSBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVk
VGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMDg1
LDE1ICsxMDg1LDE1IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKEpTVmFsdWU6OmVuY29kZShjYXN0
ZWRUaGlzLT5zdXBwbGVtZW50YWxNZXRob2QzKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVBy
b3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMywgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25fc3VwcGxlbWVudGFsTWV0
aG9kMywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+Ojpj
YWxsPGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kM0Jv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAic3VwcGxlbWVudGFsTWV0aG9k
MyIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6Y2FsbDxqc1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbl9zdXBwbGVtZW50YWxNZXRob2QzQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJzdXBwbGVtZW50YWxNZXRob2QzIik7CiB9
CiAKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9u
MTIpCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3JGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDRCb2R5KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JG
dW5jdGlvbl9zdXBwbGVtZW50YWxNZXRob2Q0Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIGF1dG8m
IHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTExMDQsOSArMTEwNCw5IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDQsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yRnVuY3Rp
b25fc3VwcGxlbWVudGFsTWV0aG9kNCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RJbnRlcmZhY2U+OjpjYWxsU3RhdGljPGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yRnVu
Y3Rpb25TdXBwbGVtZW50YWxNZXRob2Q0Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJzdXBwbGVtZW50YWxNZXRob2Q0Iik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RJbnRlcmZhY2U+OjpjYWxsU3RhdGljPGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yRnVu
Y3Rpb25fc3VwcGxlbWVudGFsTWV0aG9kNEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAic3VwcGxlbWVudGFsTWV0aG9kNCIpOwogfQogCiAjZW5kaWYKQEAgLTExNzUsNDQg
KzExNzUsNDQgQEAgY29uc3QgSlNDOjpDbGFzc0luZm8gVGVzdEludGVyZmFjZUl0ZXJhdAogdGVt
cGxhdGU8PgogY29uc3QgSlNDOjpDbGFzc0luZm8gVGVzdEludGVyZmFjZUl0ZXJhdG9yUHJvdG90
eXBlOjpzX2luZm8gPSB7ICJUZXN0SW50ZXJmYWNlIEl0ZXJhdG9yIiwgJkJhc2U6OnNfaW5mbywg
bnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShUZXN0SW50ZXJmYWNlSXRlcmF0
b3JQcm90b3R5cGUpIH07CiAKLXN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQ2FsbGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKiwgSlNUZXN0SW50ZXJmYWNlKiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbl9lbnRyaWVzQ2FsbGVy
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiwgSlNUZXN0SW50ZXJmYWNlKiB0aGlzT2JqZWN0
KQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaXRlcmF0b3JDcmVhdGU8VGVzdEludGVy
ZmFjZUl0ZXJhdG9yPigqdGhpc09iamVjdCwgSXRlcmF0aW9uS2luZDo6RW50cmllcykpOwogfQog
Ci1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rp
b25FbnRyaWVzLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlND
OjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25fZW50cmllcywgKEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6Y2FsbDxqc1Rlc3RJbnRlcmZh
Y2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNDYWxsZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAiZW50cmllcyIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SW50
ZXJmYWNlPjo6Y2FsbDxqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbl9lbnRyaWVzQ2Fs
bGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImVudHJpZXMiKTsKIH0KIAot
c3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5j
dGlvbktleXNDYWxsZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqLCBKU1Rlc3RJbnRlcmZh
Y2UqIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVy
ZmFjZVByb3RvdHlwZUZ1bmN0aW9uX2tleXNDYWxsZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqLCBKU1Rlc3RJbnRlcmZhY2UqIHRoaXNPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShpdGVyYXRvckNyZWF0ZTxUZXN0SW50ZXJmYWNlSXRlcmF0b3I+KCp0aGlzT2JqZWN0
LCBJdGVyYXRpb25LaW5kOjpLZXlzKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbktleXMsIChKU0M6OkpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbl9rZXlz
LCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZh
Y2U+OjpjYWxsPGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0NhbGxlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJrZXlzIik7CisgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1
bmN0aW9uX2tleXNDYWxsZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAia2V5
cyIpOwogfQogCi1zdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVBy
b3RvdHlwZUZ1bmN0aW9uVmFsdWVzQ2FsbGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiwg
SlNUZXN0SW50ZXJmYWNlKiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbl92YWx1ZXNDYWxsZXIoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqLCBKU1Rlc3RJbnRlcmZhY2UqIHRoaXNPYmplY3QpCiB7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShpdGVyYXRvckNyZWF0ZTxUZXN0SW50ZXJmYWNlSXRlcmF0
b3I+KCp0aGlzT2JqZWN0LCBJdGVyYXRpb25LaW5kOjpWYWx1ZXMpKTsKIH0KIAotSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzLCAo
SlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJv
dG90eXBlRnVuY3Rpb25fdmFsdWVzLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1
bmN0aW9uVmFsdWVzQ2FsbGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZh
bHVlcyIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6Y2FsbDxq
c1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbl92YWx1ZXNDYWxsZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgRW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQ2FsbGVy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgSlNUZXN0SW50ZXJmYWNlKiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbl9mb3JFYWNoQ2FsbGVyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNU
ZXN0SW50ZXJmYWNlKiB0aGlzT2JqZWN0KQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
aXRlcmF0b3JGb3JFYWNoPFRlc3RJbnRlcmZhY2VJdGVyYXRvcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICp0aGlzT2JqZWN0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gsIChKU0M6OkpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1l
KSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5j
dGlvbl9mb3JFYWNoLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRm9y
RWFjaENhbGxlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJmb3JFYWNoIik7
CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdElu
dGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uX2ZvckVhY2hDYWxsZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAiZm9yRWFjaCIpOwogfQogCiBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rl
c3RJbnRlcmZhY2U6OnN1YnNwYWNlRm9ySW1wbChKU0M6OlZNJiB2bSkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5k
ZXJzY29yZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNwcAkocmV2aXNpb24g
MjY4NTQ3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyAr
NDgsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3IpOwogSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0
cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlTGVhZGlu
Z1VuZGVyc2NvcmVSZWFkb25seSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdElu
dGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlX3JlYWRvbmx5KTsKIAogY2xhc3MgSlNUZXN0SW50ZXJm
YWNlTGVhZGluZ1VuZGVyc2NvcmVQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZp
bmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTEwNCw3ICsxMDQsNyBAQCB0ZW1wbGF0ZTw+IGNvbnN0
IENsYXNzSW5mbyBKU1Rlc3RJbnRlcmZhCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNU
ZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsK
ICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVy
c2NvcmVDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3Ry
dWN0b3IpIH0gfSwKLSAgICB7ICJyZWFkb25seSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1
c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZVJlYWRvbmx5KSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAg
IHsgInJlYWRvbmx5Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVy
ZmFjZUxlYWRpbmdVbmRlcnNjb3JlX3JlYWRvbmx5KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogfTsKIAogY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlUHJvdG90eXBlOjpzX2luZm8gPSB7
ICJUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUiLCAmQmFzZTo6c19pbmZvLCBudWxscHRy
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRl
cnNjb3JlUHJvdG90eXBlKSB9OwpAQCAtMTgxLDcgKzE4MSw3IEBAIEpTQ19ERUZJTkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RJbnRlcmYKICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZFZhbHVlKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VMZWFk
aW5nVW5kZXJzY29yZVJlYWRvbmx5R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZSYgdGhpc09iamVjdCkKK3N0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZV9yZWFk
b25seUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0SW50
ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUmIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4OSw5ICsxODksOSBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0SW50ZXJmYWNlTGVhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29w
ZSwgaW1wbC5yZWFkb25seSgpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVSZWFkb25seSwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVy
c2NvcmVfcmVhZG9ubHksIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmU+OjpnZXQ8anNUZXN0SW50
ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVSZWFkb25seUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlYWRvbmx5
Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJz
Y29yZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZV9yZWFkb25seUdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgInJlYWRvbmx5Iik7CiB9CiAKIEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVzdElu
dGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlOjpzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0pCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFi
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHAJKHJldmlzaW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ5LDExICs0OSwxMSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5j
dGlvbnMKIAotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJdGVyYWJsZVByb3RvdHlw
ZUZ1bmN0aW9uU3ltYm9sSXRlcmF0b3IpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTsKLUpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk7Ci1K
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25G
b3JFYWNoKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SXRlcmFibGVQcm90b3R5
cGVGdW5jdGlvbl9TeW1ib2xJdGVyYXRvcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25fZW50cmllcyk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25fa2V5cyk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25fdmFsdWVz
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5j
dGlvbl9mb3JFYWNoKTsKIAogLy8gQXR0cmlidXRlcwogCkBAIC0xMTQsMTAgKzExNCwxMCBAQCB0
ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RJdGVyYWJsCiBzdGF0aWMgY29uc3QgSGFz
aFRhYmxlVmFsdWUgSlNUZXN0SXRlcmFibGVQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAg
ICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SXRlcmFibGVDb25zdHJ1Y3RvciksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpT
VGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IpIH0gfSwKLSAgICB7ICJlbnRyaWVzIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RJdGVy
YWJsZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7
ICJrZXlzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1
bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyksIChpbnRwdHJfdCkg
KDApIH0gfSwKLSAgICB7ICJ2YWx1ZXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25W
YWx1ZXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAiZm9yRWFjaCIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0SXRlcmFi
bGVQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAi
ZW50cmllcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpG
dW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVG
dW5jdGlvbj4oanNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbl9lbnRyaWVzKSwgKGludHB0
cl90KSAoMCkgfSB9LAorICAgIHsgImtleXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rp
b25fa2V5cyksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJ2YWx1ZXMiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEl0ZXJh
YmxlUHJvdG90eXBlRnVuY3Rpb25fdmFsdWVzKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsg
ImZvckVhY2giLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZl
RnVuY3Rpb24+KGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25fZm9yRWFjaCksIChpbnRw
dHJfdCkgKDEpIH0gfSwKIH07CiAKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RJdGVyYWJsZVByb3Rv
dHlwZTo6c19pbmZvID0geyAiVGVzdEl0ZXJhYmxlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwg
bnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RJdGVyYWJsZVByb3RvdHlwZSkgfTsK
QEAgLTI1OSw0NCArMjU5LDQ0IEBAIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIFRlc3RJdGVyYWJsZUl0
ZXJhdG8KIHRlbXBsYXRlPD4KIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIFRlc3RJdGVyYWJsZUl0ZXJh
dG9yUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0SXRlcmFibGUgSXRlcmF0b3IiLCAmQmFzZTo6
c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFRlc3RJdGVyYWJs
ZUl0ZXJhdG9yUHJvdG90eXBlKSB9OwogCi1zdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQ2FsbGVyKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKiwgSlNUZXN0SXRlcmFibGUqIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5l
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25fZW50cmllc0Nh
bGxlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSosIEpTVGVzdEl0ZXJhYmxlKiB0aGlzT2Jq
ZWN0KQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaXRlcmF0b3JDcmVhdGU8VGVzdEl0
ZXJhYmxlSXRlcmF0b3I+KCp0aGlzT2JqZWN0LCBJdGVyYXRpb25LaW5kOjpWYWx1ZXMpKTsKIH0K
IAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rp
b25FbnRyaWVzLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlND
OjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbl9lbnRyaWVzLCAoSlNDOjpKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJdGVyYWJsZT46OmNhbGw8anNUZXN0SXRlcmFibGVQ
cm90b3R5cGVGdW5jdGlvbkVudHJpZXNDYWxsZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAiZW50cmllcyIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SXRlcmFi
bGU+OjpjYWxsPGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25fZW50cmllc0NhbGxlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbnRyaWVzIik7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbktl
eXNDYWxsZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqLCBKU1Rlc3RJdGVyYWJsZSogdGhp
c09iamVjdCkKK3N0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0SXRlcmFibGVQcm90
b3R5cGVGdW5jdGlvbl9rZXlzQ2FsbGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiwgSlNU
ZXN0SXRlcmFibGUqIHRoaXNPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShp
dGVyYXRvckNyZWF0ZTxUZXN0SXRlcmFibGVJdGVyYXRvcj4oKnRoaXNPYmplY3QsIEl0ZXJhdGlv
bktpbmQ6OktleXMpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEl0ZXJh
YmxlUHJvdG90eXBlRnVuY3Rpb25LZXlzLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbl9rZXlzLCAoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJdGVyYWJsZT46OmNhbGw8anNU
ZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbktleXNDYWxsZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAia2V5cyIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
SXRlcmFibGU+OjpjYWxsPGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25fa2V5c0NhbGxl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJrZXlzIik7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvblZh
bHVlc0NhbGxlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSosIEpTVGVzdEl0ZXJhYmxlKiB0
aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJdGVyYWJsZVBy
b3RvdHlwZUZ1bmN0aW9uX3ZhbHVlc0NhbGxlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSos
IEpTVGVzdEl0ZXJhYmxlKiB0aGlzT2JqZWN0KQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoaXRlcmF0b3JDcmVhdGU8VGVzdEl0ZXJhYmxlSXRlcmF0b3I+KCp0aGlzT2JqZWN0LCBJdGVy
YXRpb25LaW5kOjpWYWx1ZXMpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uX3ZhbHVlcywg
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SXRlcmFibGU+
OjpjYWxsPGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNDYWxsZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7CisgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RJdGVyYWJsZT46OmNhbGw8anNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5j
dGlvbl92YWx1ZXNDYWxsZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFs
dWVzIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0SXRlcmFibGVQ
cm90b3R5cGVGdW5jdGlvbkZvckVhY2hDYWxsZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1Rlc3RJdGVyYWJsZSogdGhpc09iamVj
dCkKK3N0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0SXRlcmFibGVQcm90b3R5cGVG
dW5jdGlvbl9mb3JFYWNoQ2FsbGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNUZXN0SXRlcmFibGUqIHRoaXNPYmplY3QpCiB7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShpdGVyYXRvckZvckVhY2g8VGVzdEl0ZXJhYmxlSXRl
cmF0b3I+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqdGhpc09iamVjdCkpOwog
fQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5j
dGlvbkZvckVhY2gsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uX2ZvckVhY2gsIChKU0M6OkpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEl0ZXJhYmxlPjo6Y2FsbDxqc1Rlc3RJdGVyYWJs
ZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaENhbGxlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJmb3JFYWNoIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJdGVy
YWJsZT46OmNhbGw8anNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbl9mb3JFYWNoQ2FsbGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZvckVhY2giKTsKIH0KIAogSlND
OjpJc29TdWJzcGFjZSogSlNUZXN0SXRlcmFibGU6OnN1YnNwYWNlRm9ySW1wbChKU0M6OlZNJiB2
bSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RK
U0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAkocmV2
aXNpb24gMjY4NTQ3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTUg
KzQzLDE1IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlRnVu
Y3Rpb25UZXN0Q3VzdG9tRnVuY3Rpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RDdXN0b21GdW5jdGlv
bik7CiAKIC8vIEF0dHJpYnV0ZXMKIAogSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RK
U0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKTsKIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZUN1
c3RvbSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVj
dG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b20pOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcl90ZXN0QXR0cmli
dXRlQ3VzdG9tKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0SlNCdWlsdGluQ29u
c3RydWN0b3JfdGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JfdGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKTsK
IAogY2xhc3MgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGUgZmluYWwgOiBwdWJs
aWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTExMywxMCArMTEzLDEwIEBA
IHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RKU0J1aWwKIHsKICAgICB7ICJjb25z
dHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rvciks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IpIH0gfSwKICAgICB7ICJ0ZXN0
QXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6QnVpbHRpbiksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxCdWlsdGluR2VuZXJhdG9yPih0ZXN0SlNCdWlsdGlu
Q29uc3RydWN0b3JUZXN0QXR0cmlidXRlQ29kZUdlbmVyYXRvciksIChpbnRwdHJfdCkgKHNldFRl
c3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVDb2RlR2VuZXJhdG9yKSB9IH0sCi0g
ICAgeyAidGVzdEF0dHJpYnV0ZUN1c3RvbSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVDdXN0b20pLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCi0g
ICAgeyAidGVzdEF0dHJpYnV0ZVJXQ3VzdG9tIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RB
dHRyaWJ1dGVSV0N1c3RvbSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0
ZVJXQ3VzdG9tKSB9IH0sCisgICAgeyAidGVzdEF0dHJpYnV0ZUN1c3RvbSIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9N
QXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcl90ZXN0QXR0cmli
dXRlQ3VzdG9tKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oMCkgfSB9LAorICAgIHsgInRlc3RBdHRyaWJ1dGVSV0N1c3RvbSIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SlNCdWls
dGluQ29uc3RydWN0b3JfdGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0SlNCdWlsdGluQ29u
c3RydWN0b3JfdGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKSB9IH0sCiAgICAgeyAidGVzdEZ1bmN0aW9u
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkJ1aWx0aW4p
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8QnVpbHRpbkdlbmVyYXRvcj4o
dGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEZ1bmN0aW9uQ29kZUdlbmVyYXRvciksIChpbnRw
dHJfdCkgKDApIH0gfSwKLSAgICB7ICJ0ZXN0Q3VzdG9tRnVuY3Rpb24iLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEpTQnVpbHRp
bkNvbnN0cnVjdG9yUHJvdG90eXBlRnVuY3Rpb25UZXN0Q3VzdG9tRnVuY3Rpb24pLCAoaW50cHRy
X3QpICgwKSB9IH0sCisgICAgeyAidGVzdEN1c3RvbUZ1bmN0aW9uIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RKU0J1aWx0aW5D
b25zdHJ1Y3RvclByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RDdXN0b21GdW5jdGlvbiksIChpbnRwdHJf
dCkgKDApIH0gfSwKIH07CiAKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1
Y3RvclByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yIiwgJkJh
c2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RK
U0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSkgfTsKQEAgLTE5NCw0MSArMTk0LDQxIEBAIEpT
Q19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RKU0J1aWwKICAgICByZXR1cm4gcHJvdG90
eXBlLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVDdXN0b21HZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yJiB0
aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVj
dG9yX3Rlc3RBdHRyaWJ1dGVDdXN0b21HZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yJiB0aGlzT2JqZWN0KQogewogICAg
IFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gdGhpc09iamVj
dC50ZXN0QXR0cmlidXRlQ3VzdG9tKGxleGljYWxHbG9iYWxPYmplY3QpOwogfQogCi1KU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRl
Q3VzdG9tLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcl90ZXN0QXR0cmlidXRlQ3VzdG9tLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEpTQnVpbHRpbkNv
bnN0cnVjdG9yPjo6Z2V0PGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZUN1
c3RvbUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3RBdHRyaWJ1dGVDdXN0b20iKTsKKyAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yPjo6Z2V0PGpzVGVzdEpTQnVp
bHRpbkNvbnN0cnVjdG9yX3Rlc3RBdHRyaWJ1dGVDdXN0b21HZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0
QXR0cmlidXRlQ3VzdG9tIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RKU0J1
aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVSV0N1c3RvbUdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3ImIHRoaXNP
YmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3Jf
dGVzdEF0dHJpYnV0ZVJXQ3VzdG9tR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvciYgdGhpc09iamVjdCkKIHsKICAgICBV
TlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIHRoaXNPYmplY3Qu
dGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKGxleGljYWxHbG9iYWxPYmplY3QpOwogfQogCi1KU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRl
UldDdXN0b20sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yX3Rlc3RBdHRyaWJ1dGVSV0N1c3RvbSwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RKU0J1aWx0
aW5Db25zdHJ1Y3Rvcj46OmdldDxqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1
dGVSV0N1c3RvbUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3RBdHRyaWJ1dGVSV0N1c3RvbSIpOworICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I+OjpnZXQ8anNU
ZXN0SlNCdWlsdGluQ29uc3RydWN0b3JfdGVzdEF0dHJpYnV0ZVJXQ3VzdG9tR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAidGVzdEF0dHJpYnV0ZVJXQ3VzdG9tIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVSV0N1c3RvbVNldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0SlNCdWlsdGluQ29uc3Ry
dWN0b3ImIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JfdGVzdEF0dHJpYnV0ZVJXQ3VzdG9tU2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1
Y3RvciYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHRoaXNPYmplY3Quc2V0VGVzdEF0dHJp
YnV0ZVJXQ3VzdG9tKGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0
cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9tLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RKU0J1aWx0aW5Db25z
dHJ1Y3Rvcl90ZXN0QXR0cmlidXRlUldDdXN0b20sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SlNCdWlsdGluQ29u
c3RydWN0b3I+OjpzZXQ8c2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRl
UldDdXN0b21TZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgInRlc3RBdHRyaWJ1dGVSV0N1c3RvbSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I+OjpzZXQ8c2V0SlNUZXN0SlNCdWlsdGluQ29uc3Ry
dWN0b3JfdGVzdEF0dHJpYnV0ZVJXQ3VzdG9tU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ0ZXN0QXR0cmlidXRlUldDdXN0b20iKTsKIH0KIAot
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVj
dG9yUHJvdG90eXBlRnVuY3Rpb25UZXN0Q3VzdG9tRnVuY3Rpb25Cb2R5KEpTQzo6SlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5
cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcj46OkNsYXNzUGFy
YW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGVGdW5jdGlvbl90ZXN0Q3VzdG9tRnVuY3Rp
b25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RKU0J1aWx0aW5D
b25zdHJ1Y3Rvcj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjM3LDkgKzIzNyw5IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT50ZXN0Q3VzdG9tRnVuY3Rpb24o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUpKSkpOwogfQogCi1KU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGVGdW5jdGlvblRl
c3RDdXN0b21GdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SlNC
dWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGVGdW5jdGlvbl90ZXN0Q3VzdG9tRnVuY3Rpb24sIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I+
OjpjYWxsPGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlRnVuY3Rpb25UZXN0Q3Vz
dG9tRnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RD
dXN0b21GdW5jdGlvbiIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SlNCdWlsdGlu
Q29uc3RydWN0b3I+OjpjYWxsPGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlRnVu
Y3Rpb25fdGVzdEN1c3RvbUZ1bmN0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJ0ZXN0Q3VzdG9tRnVuY3Rpb24iKTsKIH0KIAogSlNDOjpJc29TdWJzcGFjZSogSlNU
ZXN0SlNCdWlsdGluQ29uc3RydWN0b3I6OnN1YnNwYWNlRm9ySW1wbChKU0M6OlZNJiB2bSkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LmNwcAkocmV2
aXNpb24gMjY4NTQ3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIs
MjIgKzUyLDIyIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90
eXBlRnVuY3Rpb25Wb2lkT3BlcmF0aW9uKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvblRocm93aW5nT3BlcmF0
aW9uKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3RQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU9wZXJhdGlvbik7Ci1KU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlv
blN0YXRpY09wZXJhdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25fdm9pZE9wZXJhdGlvbik7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90
eXBlRnVuY3Rpb25fdGhyb3dpbmdPcGVyYXRpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uX2N1c3RvbU9w
ZXJhdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbl9zdGF0aWNPcGVyYXRpb24pOwogCiAvLyBBdHRy
aWJ1dGVzCiAKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3RSZWFkb25seVN0cmluZ0F0dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRl
KTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0
dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdExlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlKTsKLUpTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmli
dXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3ROb2RlQXR0cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJpYnV0ZSk7
Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdF9yZWFkb25seVN0cmluZ0F0dHJp
YnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0X3JlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0X3JlYWRXcml0ZVN0cmluZ0F0dHJp
YnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0X2N1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0X2N1c3RvbUdldHRl
clNldHRlclN0cmluZ0F0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0X25vZGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdF9ub2RlQXR0cmlidXRl
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3RDb25zdHJ1Y3Rvcl9zdGF0aWNTdHJpbmdBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yX3N0YXRp
Y1N0cmluZ0F0dHJpYnV0ZSk7CiAKIGNsYXNzIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6
CkBAIC0xMDUsMTMgKzEwNSwxMyBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJM
RShKU1RlCiAKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdFByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogewotICAgIHsgInJlYWRvbmx5U3Ry
aW5nQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0UmVhZG9ubHlTdHJpbmdBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCi0gICAgeyAi
cmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRX
cml0ZVN0cmluZ0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZFdy
aXRlU3RyaW5nQXR0cmlidXRlKSB9IH0sCi0gICAgeyAiY3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5n
QXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0
cmluZ0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q3VzdG9tR2V0dGVy
U2V0dGVyU3RyaW5nQXR0cmlidXRlKSB9IH0sCi0gICAgeyAibm9kZUF0dHJpYnV0ZSIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3ROb2RlQXR0cmlidXRlKSB9IH0sCi0gICAgeyAidm9pZE9wZXJhdGlvbiIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvblZvaWRPcGVyYXRpb24pLCAo
aW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAidGhyb3dpbmdPcGVyYXRpb24iLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25UaHJvd2luZ09wZXJhdGlvbiksIChp
bnRwdHJfdCkgKDIpIH0gfSwKLSAgICB7ICJjdXN0b21PcGVyYXRpb24iLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdExlZ2FjeU5v
SW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25DdXN0b21PcGVyYXRpb24pLCAoaW50cHRy
X3QpICgwKSB9IH0sCisgICAgeyAicmVhZG9ubHlTdHJpbmdBdHRyaWJ1dGUiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRP
TUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RfcmVhZG9u
bHlTdHJpbmdBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAicmVhZFdyaXRlU3RyaW5nQXR0cmlidXRl
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdF9yZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRK
U1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdF9yZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUpIH0g
fSwKKyAgICB7ICJjdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdExlZ2FjeU5v
SW50ZXJmYWNlT2JqZWN0X2N1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZSksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVz
dExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0X2N1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0
ZSkgfSB9LAorICAgIHsgIm5vZGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
X25vZGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdF9ub2RlQXR0cmli
dXRlKSB9IH0sCisgICAgeyAidm9pZE9wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3RQcm90b3R5cGVGdW5jdGlvbl92b2lkT3BlcmF0aW9uKSwgKGludHB0cl90KSAoMCkgfSB9
LAorICAgIHsgInRocm93aW5nT3BlcmF0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVj
dFByb3RvdHlwZUZ1bmN0aW9uX3Rocm93aW5nT3BlcmF0aW9uKSwgKGludHB0cl90KSAoMikgfSB9
LAorICAgIHsgImN1c3RvbU9wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQ
cm90b3R5cGVGdW5jdGlvbl9jdXN0b21PcGVyYXRpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCiAg
ICAgeyAiQ09OU1RBTlQxIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSgxKSB9IH0sCiAgICAg
eyAiQ09OU1RBTlQyIiwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q29u
c3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgeyAobG9uZyBsb25nKSgyKSB9IH0sCiB9OwpAQCAt
MTY3LDcgKzE2Nyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWMK
ICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdCo+
KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkp
OwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3RSZWFkb25seVN0cmluZ0F0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QmIHRoaXNPYmplY3QpCitz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RfcmVhZG9u
bHlTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0JiB0aGlzT2JqZWN0KQogewogICAgIGF1
dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNzUsMTIgKzE3NSwxMiBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgaW1wbC5yZWFkb25seVN0cmluZ0F0dHJpYnV0ZSgpKSkpOwogfQogCi1K
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFk
b25seVN0cmluZ0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RfcmVhZG9ubHlTdHJpbmdB
dHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpnZXQ8anNUZXN0TGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3RSZWFkb25seVN0cmluZ0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlYWRv
bmx5U3RyaW5nQXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdD46OmdldDxqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdF9y
ZWFkb25seVN0cmluZ0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlYWRvbmx5U3RyaW5nQXR0
cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QmIHRoaXNP
YmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3RfcmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdCYgdGhpc09iamVjdCkK
IHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTg4LDEyICsx
ODgsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZQogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwucmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlKCkp
KSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RfcmVh
ZFdyaXRlU3RyaW5nQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6Z2V0PGpzVGVz
dExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAicmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OmdldDxqc1Rlc3RMZWdhY3lOb0lu
dGVyZmFjZU9iamVjdF9yZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJy
ZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlU2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdF9yZWFkV3JpdGVTdHJpbmdBdHRyaWJ1
dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1
dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDYsMzUgKzIwNiwzNSBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0TGVnYWN5Tm9JbnRlCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3RfcmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6c2V0PHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUiKTsKKyAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6c2V0
PHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0X3JlYWRXcml0ZVN0cmluZ0F0dHJpYnV0
ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
cmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJp
YnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3QmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RfY3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0
cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdCYgdGhpc09iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIHRoaXNPYmplY3QuY3VzdG9tR2V0dGVy
U2V0dGVyU3RyaW5nQXR0cmlidXRlKGxleGljYWxHbG9iYWxPYmplY3QpOwogfQogCi1KU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0
ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0X2N1c3RvbUdldHRl
clNldHRlclN0cmluZ0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OmdldDxqc1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0
ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgImN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZSIpOwor
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+Ojpn
ZXQ8anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RfY3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5n
QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmli
dXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Qm
IHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RfY3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRl
U2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdCYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRv
JiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHRoaXNPYmplY3Qu
c2V0Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlKGxleGljYWxHbG9iYWxPYmplY3Qs
IHZhbHVlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5n
QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdF9jdXN0b21H
ZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0
ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgImN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZSIp
OworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+
OjpzZXQ8c2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RfY3VzdG9tR2V0dGVyU2V0dGVy
U3RyaW5nQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJjdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUiKTsKIH0KIAot
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0
dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Rfbm9kZUF0dHJpYnV0ZUdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3QmIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTI0MiwxMiArMjQyLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RM
ZWdhY3lOb0ludGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
SW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxP
YmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5ub2RlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUpTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRy
aWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0X25vZGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3Q+OjpnZXQ8anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRl
R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAibm9kZUF0dHJpYnV0ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpnZXQ8anNUZXN0TGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3Rfbm9kZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm5vZGVBdHRyaWJ1dGUi
KTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0Tm9kZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFs
dWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Rf
bm9kZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUp
CiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI2MCwyNCAr
MjYwLDI0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RMZWdhY3lOb0ludGUKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3Rfbm9kZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdD46OnNldDxzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRy
aWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgIm5vZGVBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0Pjo6c2V0PHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
X25vZGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgIm5vZGVBdHRyaWJ1dGUiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRy
aWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QpCitzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3Rvcl9z
dGF0aWNTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q6OnN0
YXRpY1N0cmluZ0F0dHJpYnV0ZSgpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJp
YnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3Rvcl9zdGF0aWNTdHJpbmdBdHRyaWJ1
dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpnZXRTdGF0aWM8anNUZXN0TGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJpYnV0ZUdldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0YXRpY1N0cmluZ0F0dHJpYnV0ZSIpOworICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpnZXRT
dGF0aWM8anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3Rvcl9zdGF0aWNTdHJp
bmdBdHRyaWJ1dGVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdGF0
aWNTdHJpbmdBdHRyaWJ1dGUiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGVTZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1
Y3Rvcl9zdGF0aWNTdHJpbmdBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTI4OSwxMiArMjg5LDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RMZWdhY3lOb0ludGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JT
dGF0aWNTdHJpbmdBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0Q29uc3RydWN0b3Jfc3RhdGljU3RyaW5nQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0Pjo6c2V0U3RhdGljPHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0YXRpY1N0cmluZ0F0dHJpYnV0
ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3Q+OjpzZXRTdGF0aWM8c2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3Rv
cl9zdGF0aWNTdHJpbmdBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0YXRpY1N0cmluZ0F0dHJpYnV0ZSIpOwogfQogCi1zdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3RQcm90b3R5cGVGdW5jdGlvblZvaWRPcGVyYXRpb25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1l
IElETE9wZXJhdGlvbjxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OkNsYXNzUGFyYW1l
dGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvbl92b2lkT3BlcmF0aW9uQm9k
eShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3Q+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMwNiwxMiArMzA2LDEyIEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvblZvaWRPcGVyYXRpb24sIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJv
dG90eXBlRnVuY3Rpb25fdm9pZE9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OmNhbGw8anNUZXN0TGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvblZvaWRPcGVyYXRpb25Cb2R5PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZvaWRPcGVyYXRpb24iKTsKKyAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uX3ZvaWRPcGVyYXRpb25Cb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZvaWRPcGVyYXRpb24iKTsKIH0K
IAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25UaHJvd2luZ09wZXJhdGlvbkJvZHkoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6
Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uX3Rocm93
aW5nT3BlcmF0aW9uQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewog
ICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMzMiwxMiArMzMyLDEy
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNl
PFRlc3RPYmo+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVj
dCgpLCB0aHJvd1Njb3BlLCBpbXBsLnRocm93aW5nT3BlcmF0aW9uKCpjb250ZXh0LCBXVEZNb3Zl
KHN0ckFyZyksICpvYmpBcmcpKSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvblRocm93aW5nT3BlcmF0
aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uX3Rocm93aW5nT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6Y2FsbDxq
c1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uVGhyb3dpbmdPcGVy
YXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRocm93aW5nT3Bl
cmF0aW9uIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdD46OmNhbGw8anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5j
dGlvbl90aHJvd2luZ09wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAidGhyb3dpbmdPcGVyYXRpb24iKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25D
dXN0b21PcGVyYXRpb25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3RQcm90b3R5cGVGdW5jdGlvbl9jdXN0b21PcGVyYXRpb25Cb2R5KEpTQzo6SlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5
cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OkNsYXNz
UGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMzQ2LDEyICszNDYsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoSlNWYWx1
ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPmN1c3RvbU9wZXJhdGlvbigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tT3BlcmF0aW9uLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVj
dFByb3RvdHlwZUZ1bmN0aW9uX2N1c3RvbU9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OmNhbGw8anNUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU9wZXJhdGlvbkJvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY3VzdG9tT3BlcmF0aW9uIik7Cisg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OmNh
bGw8anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvbl9jdXN0b21P
cGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImN1c3RvbU9w
ZXJhdGlvbiIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGljT3BlcmF0aW9u
Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxG
cmFtZSogY2FsbEZyYW1lKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbl9zdGF0aWNPcGVyYXRp
b25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMzYyLDkgKzM2Miw5IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RD
b25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGljT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25f
c3RhdGljT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6Y2FsbFN0YXRpYzxqc1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNPcGVyYXRpb25Cb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInN0YXRpY09wZXJhdGlvbiIpOworICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpjYWxsU3RhdGljPGpz
VGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbl9zdGF0aWNPcGVy
YXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInN0YXRpY09wZXJh
dGlvbiIpOwogfQogCiBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdDo6c3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZtKQpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcAkocmV2aXNpb24gMjY4NTQ3KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw3IEBAIHVzaW5nIG5hbWVz
cGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGVGdW5jdGlvbk5hbWVkSXRlbSk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90
b3R5cGVGdW5jdGlvbl9uYW1lZEl0ZW0pOwogCiAvLyBBdHRyaWJ1dGVzCiAKQEAgLTExMSw3ICsx
MTEsNyBAQCB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RMZWdhY3lPCiBzdGF0aWMg
Y29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc1Byb3RvdHlw
ZVRhYmxlVmFsdWVzW10gPQogewogICAgIHsgImNvbnN0cnVjdG9yIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1
aWx0SW5zQ29uc3RydWN0b3IpIH0gfSwKLSAgICB7ICJuYW1lZEl0ZW0iLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGVGdW5jdGlvbk5hbWVkSXRlbSksIChpbnRwdHJfdCkgKDEp
IH0gfSwKKyAgICB7ICJuYW1lZEl0ZW0iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90
b3R5cGVGdW5jdGlvbl9uYW1lZEl0ZW0pLCAoaW50cHRyX3QpICgxKSB9IH0sCiB9OwogCiBjb25z
dCBDbGFzc0luZm8gSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc1Byb3RvdHlwZTo6c19pbmZv
ID0geyAiVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiLCAmQmFzZTo6c19pbmZvLCBudWxscHRy
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnNQcm90b3R5cGUpIH07CkBAIC0yMzgsNyArMjM4LDcgQEAgSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdExlZ2FjeQogICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwg
dm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFs
dWUpKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdExlZ2Fj
eU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGVGdW5jdGlvbk5hbWVkSXRlbUJvZHkoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM+OjpD
bGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGVGdW5jdGlvbl9uYW1lZEl0
ZW1Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RMZWdhY3lPdmVy
cmlkZUJ1aWx0SW5zPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNTMsOSArMjUzLDkgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIGltcGwubmFtZWRJ
dGVtKFdURk1vdmUobmFtZSkpKSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc1Byb3RvdHlwZUZ1bmN0aW9uTmFtZWRJdGVtLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJv
dG90eXBlRnVuY3Rpb25fbmFtZWRJdGVtLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM+OjpjYWxsPGpzVGVzdExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnNQcm90b3R5cGVGdW5jdGlvbk5hbWVkSXRlbUJvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAibmFtZWRJdGVtIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zPjo6Y2FsbDxqc1Rlc3RMZWdhY3lPdmVycmlkZUJ1
aWx0SW5zUHJvdG90eXBlRnVuY3Rpb25fbmFtZWRJdGVtQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJuYW1lZEl0ZW0iKTsKIH0KIAogSlNDOjpJc29TdWJzcGFjZSogSlNU
ZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluczo6c3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZtKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1hcExp
a2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RNYXBMaWtlLmNwcAkocmV2aXNpb24gMjY4NTQ3KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1hcExpa2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01MCwyMSArNTAsMjEgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rp
b25zCiAKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1
bmN0aW9uR2V0KTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3Rv
dHlwZUZ1bmN0aW9uSGFzKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlr
ZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpOwotSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKTsKLUpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uU2V0
KTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0
aW9uQ2xlYXIpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlUHJvdG90
eXBlRnVuY3Rpb25EZWxldGUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBM
aWtlUHJvdG90eXBlRnVuY3Rpb25fZ2V0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2hhcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl9lbnRyaWVzKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2tleXMpOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25fdmFs
dWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1
bmN0aW9uX2ZvckVhY2gpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtl
UHJvdG90eXBlRnVuY3Rpb25fc2V0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2NsZWFyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2RlbGV0ZSk7CiAKIC8vIEF0dHJpYnV0
ZXMKIAogSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RNYXBMaWtlQ29uc3RydWN0b3Ip
OwogSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RNYXBMaWtlQ29uc3RydWN0b3Ip
OwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RNYXBMaWtlU2l6ZSk7CitKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE1hcExpa2Vfc2l6ZSk7CiAKIGNsYXNzIEpTVGVzdE1h
cExpa2VQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1
YmxpYzoKQEAgLTEyMCwxNiArMTIwLDE2IEBAIHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdE1hcExpa2UKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RNYXBMaWtlUHJv
dG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdE1hcExpa2VDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE1hcExpa2VDb25zdHJ1Y3RvcikgfSB9LAot
ICAgIHsgInNpemUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RNYXBMaWtlU2l6
ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KDApIH0gfSwKLSAgICB7ICJnZXQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4o
anNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0KSwgKGludHB0cl90KSAoMSkgfSB9LAot
ICAgIHsgImhhcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RNYXBM
aWtlUHJvdG90eXBlRnVuY3Rpb25IYXMpLCAoaW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAiZW50
cmllcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RNYXBMaWtlUHJv
dG90eXBlRnVuY3Rpb25FbnRyaWVzKSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgImtleXMi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0g
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TWFwTGlrZVByb3RvdHlw
ZUZ1bmN0aW9uS2V5cyksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJ2YWx1ZXMiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0
aW9uVmFsdWVzKSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgImZvckVhY2giLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE1h
cExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpLCAoaW50cHRyX3QpICgxKSB9IH0sCi0gICAg
eyAic2V0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE1hcExpa2VQ
cm90b3R5cGVGdW5jdGlvblNldCksIChpbnRwdHJfdCkgKDIpIH0gfSwKLSAgICB7ICJjbGVhciIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RNYXBMaWtlUHJvdG90eXBl
RnVuY3Rpb25DbGVhciksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJkZWxldGUiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0
aW9uRGVsZXRlKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgInNpemUiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RNYXBMaWtlX3NpemUpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiZ2V0Iiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE1hcExpa2VQcm90b3R5cGVG
dW5jdGlvbl9nZXQpLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAiaGFzIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl9o
YXMpLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAiZW50cmllcyIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25fZW50cmll
cyksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJrZXlzIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl9rZXlzKSwgKGlu
dHB0cl90KSAoMCkgfSB9LAorICAgIHsgInZhbHVlcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25fdmFsdWVzKSwgKGludHB0
cl90KSAoMCkgfSB9LAorICAgIHsgImZvckVhY2giLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5j
dGlvbl9mb3JFYWNoKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgInNldCIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25f
c2V0KSwgKGludHB0cl90KSAoMikgfSB9LAorICAgIHsgImNsZWFyIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl9jbGVhciks
IChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJkZWxldGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdO
YXRpdmVGdW5jdGlvbj4oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2RlbGV0ZSksIChp
bnRwdHJfdCkgKDEpIH0gfSwKIH07CiAKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RNYXBMaWtlUHJv
dG90eXBlOjpzX2luZm8gPSB7ICJUZXN0TWFwTGlrZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TWFwTGlrZVByb3RvdHlwZSkgfTsK
QEAgLTIxMiwxOSArMjEyLDE5IEBAIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RN
YXBMaWsKICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAKLXN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlU2l6ZUdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0TWFwTGlrZSYgdGhpc09iamVjdCkKK3N0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlX3NpemVHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE1hcExpa2UmIHRoaXNPYmplY3QpCiB7CiAgICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMQW55PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBmb3J3YXJkU2l6ZVRvTWFwTGlrZShsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0
KSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE1hcExpa2VTaXplLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RNYXBM
aWtlX3NpemUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0TWFwTGlrZT46OmdldDxqc1Rlc3RNYXBMaWtlU2l6ZUdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNpemUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE1hcExpa2U+OjpnZXQ8anNUZXN0TWFwTGlrZV9zaXplR2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2l6ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0Qm9keShKU0M6
OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2Fs
bEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0TWFwTGlrZT46OkNsYXNzUGFyYW1l
dGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2dldEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURM
T3BlcmF0aW9uPEpTVGVzdE1hcExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewog
ICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIzOCwxMiArMjM4LDEy
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3
YXJkR2V0VG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVk
VGhpcywgV1RGTW92ZShrZXkpKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2dldCwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RNYXBMaWtlUHJvdG90
eXBlRnVuY3Rpb25HZXRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImdl
dCIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TWFwTGlrZT46OmNhbGw8anNUZXN0
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2dldEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAiZ2V0Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXNCb2R5KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVu
YW1lIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhp
cykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlUHJvdG90
eXBlRnVuY3Rpb25faGFzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNU
ZXN0TWFwTGlrZT46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjU3LDEyICsyNTcsMTIgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRIYXNUb01hcExp
a2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3Zl
KGtleSkpKSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVBy
b3RvdHlwZUZ1bmN0aW9uSGFzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RN
YXBMaWtlUHJvdG90eXBlRnVuY3Rpb25faGFzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdE1hcExpa2U+OjpjYWxsPGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhh
c0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaGFzIik7CisgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RNYXBMaWtlUHJvdG90
eXBlRnVuY3Rpb25faGFzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJo
YXMiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExp
a2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9w
ZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rp
b25fZW50cmllc0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE1h
cExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI3MSwxMiArMjcxLDEyIEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRW50cmllc1RvTWFwTGlr
ZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQog
Ci1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
RW50cmllcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3Rv
dHlwZUZ1bmN0aW9uX2VudHJpZXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0TWFwTGlrZT46OmNhbGw8anNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllc0Jv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW50cmllcyIpOworICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0TWFwTGlrZT46OmNhbGw8anNUZXN0TWFwTGlrZVByb3Rv
dHlwZUZ1bmN0aW9uX2VudHJpZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImVudHJpZXMiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbktleXNCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1l
IElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykK
K3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlUHJvdG90eXBl
RnVuY3Rpb25fa2V5c0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVz
dE1hcExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI4NSwxMiArMjg1LDEyIEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkS2V5c1RvTWFwTGlr
ZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQog
Ci1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
S2V5cywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlw
ZUZ1bmN0aW9uX2tleXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TWFw
TGlrZT46OmNhbGw8anNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0JvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAia2V5cyIpOworICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0TWFwTGlrZT46OmNhbGw8anNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
X2tleXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImtleXMiKTsKIH0K
IAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VQcm90b3R5
cGVGdW5jdGlvblZhbHVlc0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpT
VGVzdE1hcExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl92YWx1ZXNC
b2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZy
YW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6Q2xh
c3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0yOTksMTIgKzI5OSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFs
dWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZFZhbHVlc1RvTWFwTGlrZSgqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1KU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25f
dmFsdWVzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2U+Ojpj
YWxsPGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlc0JvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25fdmFs
dWVzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ2YWx1ZXMiKTsKIH0K
IAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkZvckVhY2hCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxK
U1Rlc3RNYXBMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25fZm9yRWFj
aEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2U+OjpD
bGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTMxOCwxMiArMzE4LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRm9yRWFjaFRvTWFwTGlrZSgqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoY2FsbGJhY2sp
KSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkZvckVhY2gsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1h
cExpa2VQcm90b3R5cGVGdW5jdGlvbl9mb3JFYWNoLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdE1hcExpa2U+OjpjYWxsPGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlv
bkZvckVhY2hCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZvckVhY2gi
KTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2U+OjpjYWxsPGpzVGVzdE1h
cExpa2VQcm90b3R5cGVGdW5jdGlvbl9mb3JFYWNoQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJmb3JFYWNoIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25TZXRCb2R5KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUs
IHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2Fz
dGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtl
UHJvdG90eXBlRnVuY3Rpb25fc2V0Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRp
b248SlNUZXN0TWFwTGlrZT46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0
byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzQwLDEyICszNDAsMTIgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRTZXRU
b01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBX
VEZNb3ZlKGtleSksIFdURk1vdmUodmFsdWUpKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvblNldCwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX3NldCwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RNYXBM
aWtlUHJvdG90eXBlRnVuY3Rpb25TZXRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgInNldCIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TWFwTGlrZT46OmNh
bGw8anNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX3NldEJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAic2V0Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhckJvZHkoSlNDOjpK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2U+OjpDbGFzc1BhcmFtZXRl
ciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1h
cExpa2VQcm90b3R5cGVGdW5jdGlvbl9jbGVhckJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURM
T3BlcmF0aW9uPEpTVGVzdE1hcExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewog
ICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM1NiwxMiArMzU2LDEy
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl9jbGVhciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RN
YXBMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhckJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAiY2xlYXIiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE1hcExp
a2U+OjpjYWxsPGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl9jbGVhckJvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY2xlYXIiKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0
ZUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2U+OjpD
bGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl9kZWxldGVCb2R5KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUs
IHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2Fz
dGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0z
NzUsOSArMzc1LDkgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJ
RExBbnk+KGZvcndhcmREZWxldGVUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGtleSkpKSkpOwogfQogCi1KU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25fZGVs
ZXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2U+OjpjYWxs
PGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZUJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAiZGVsZXRlIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25fZGVsZXRl
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJkZWxldGUiKTsKIH0KIAog
SlNDOjpJc29TdWJzcGFjZSogSlNUZXN0TWFwTGlrZTo6c3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0m
IHZtKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMjY4NTQ3KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSwyMiArNTEsMjIgQEAgdXNpbmcgbmFtZXNw
YWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uQ2xlYXIp
OwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25HZXQpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25I
YXMpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKTsKLUpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1
bmN0aW9uS2V5cyk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk7Ci1KU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2gpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RN
YXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25EZWxldGUpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zUHJvdG90eXBlRnVuY3Rpb25fY2xlYXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25f
Z2V0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uX2hhcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5j
dGlvbl9lbnRyaWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uX2tleXMpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJv
dG90eXBlRnVuY3Rpb25fdmFsdWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uX2ZvckVhY2gp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fZGVsZXRlKTsKIAogLy8gQXR0cmlidXRlcwogCiBK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNDb25zdHJ1Y3Rvcik7CiBKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE1h
cExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTZXQpOwot
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zU2V0KTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TWFwTGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9uc1NpemUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zX3NldCk7CitKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNfc2V0
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc19zaXplKTsKIAogY2xhc3MgSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc1Byb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3Qgewog
cHVibGljOgpAQCAtMTIyLDE2ICsxMjIsMTYgQEAgdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8g
SlNUZXN0TWFwTGlrZQogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE1hcExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7
ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0Nv
bnN0cnVjdG9yKSB9IH0sCi0gICAgeyAic2V0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zU2V0KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oc2V0SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldCkgfSB9
LAotICAgIHsgInNpemUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RNYXBMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKLSAgICB7ICJjbGVhciIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0
TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uQ2xlYXIpLCAo
aW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAiZ2V0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZl
RnVuY3Rpb24+KGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVG
dW5jdGlvbkdldCksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJoYXMiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc1Byb3RvdHlwZUZ1bmN0aW9uSGFzKSwgKGludHB0cl90KSAoMSkgfSB9LAotICAgIHsgImVu
dHJpZXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TWFwTGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRW50cmllcyksIChpbnRwdHJf
dCkgKDApIH0gfSwKLSAgICB7ICJrZXlzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rp
b24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rp
b24+KGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlv
bktleXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAidmFsdWVzIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNQcm90b3R5cGVGdW5jdGlvblZhbHVlcyksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJm
b3JFYWNoIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1
bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVu
Y3Rpb25Gb3JFYWNoKSwgKGludHB0cl90KSAoMSkgfSB9LAotICAgIHsgImRlbGV0ZSIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25EZWxldGUpLCAoaW50cHRyX3QpICgxKSB9IH0sCisg
ICAgeyAic2V0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zX3NldCksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVz
dE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNfc2V0KSB9IH0sCisgICAgeyAic2l6ZSIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNfc2l6ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJjbGVhciIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TWFwTGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uX2NsZWFyKSwgKGludHB0cl90KSAoMCkg
fSB9LAorICAgIHsgImdldCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fZ2V0KSwg
KGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgImhhcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBl
RnVuY3Rpb25faGFzKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgImVudHJpZXMiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uX2VudHJpZXMpLCAoaW50cHRyX3QpICgwKSB9IH0s
CisgICAgeyAia2V5cyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RN
YXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fa2V5cyksIChp
bnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJ2YWx1ZXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZUZ1bmN0aW9uX3ZhbHVlcyksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJmb3JFYWNoIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fZm9y
RWFjaCksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7ICJkZWxldGUiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c1Byb3RvdHlwZUZ1bmN0aW9uX2RlbGV0ZSksIChpbnRwdHJfdCkgKDEpIH0gfSwKIH07CiAKIGNv
bnN0IENsYXNzSW5mbyBKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90
eXBlOjpzX2luZm8gPSB7ICJUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyIsICZC
YXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0
TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZSkgfTsKQEAgLTIxNCw3ICsy
MTQsNyBAQCBKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TWFwTGlrCiAgICAgcmV0
dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3Rv
ciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1zdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldEdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9ucyYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RN
YXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zX3NldEdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
cyYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMjIyLDEyICsyMjIsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE1hcExp
a2VXaXRoTwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25n
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnNldCgpKSkpOwogfQogCi1K
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc1NldCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc19zZXQsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TWFwTGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9ucz46OmdldDxqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zU2V0R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2V0Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Z2V0PGpzVGVzdE1hcExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNfc2V0R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2V0Iik7CiB9CiAK
LXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zU2V0U2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RN
YXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVl
KQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNfc2V0U2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZh
bHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNDAs
MjQgKzI0MCwyNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0TWFwTGlrZVdpdGhPCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RN
YXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2V0LCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RNYXBMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zX3NldCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zPjo6c2V0PHNldEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNTZXRTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgInNldCIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TWFwTGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OnNldDxzZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zX3NldFNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAic2V0Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RN
YXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6ZUdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
cyYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zX3NpemVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMmIHRoaXNPYmpl
Y3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQW55PihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBmb3J3YXJkU2l6ZVRvTWFwTGlrZShsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzT2JqZWN0KSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE1h
cExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTaXplLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zX3NpemUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmdldDxqc1Rlc3RN
YXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6ZUdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgInNpemUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpnZXQ8anNUZXN0TWFwTGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc19zaXplR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAic2l6ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uQ2xl
YXJCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fY2xlYXJCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1l
IElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Q2xh
c3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0yNjksMTIgKzI2OSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkNsZWFyLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBl
RnVuY3Rpb25fY2xlYXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmNhbGw8anNUZXN0TWFwTGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uQ2xlYXJCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgImNsZWFyIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2FsbDxqc1Rlc3RNYXBMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fY2xlYXJCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNsZWFyIik7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zUHJvdG90eXBlRnVuY3Rpb25HZXRCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJh
dGlvbjxKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Q2xhc3NQYXJhbWV0
ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RN
YXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fZ2V0Qm9keShK
U0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSog
Y2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9ucz46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjg4LDEyICsyODgsMTIgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRHZXRUb01h
cExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZN
b3ZlKGtleSkpKSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uR2V0LCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
UHJvdG90eXBlRnVuY3Rpb25fZ2V0LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpjYWxsPGpzVGVzdE1hcExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkdldEJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZ2V0Iik7CisgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2FsbDxqc1Rlc3RNYXBM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fZ2V0Qm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJnZXQiKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNQcm90b3R5cGVGdW5jdGlvbkhhc0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0
aW9uPEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpDbGFzc1BhcmFtZXRl
ciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1h
cExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9oYXNCb2R5KEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBj
YWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMDcsMTIgKzMwNywxMiBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEhhc1RvTWFw
TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1v
dmUoa2V5KSkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25IYXMsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQ
cm90b3R5cGVGdW5jdGlvbl9oYXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmNhbGw8anNUZXN0TWFwTGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uSGFzQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJoYXMiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpjYWxsPGpzVGVzdE1hcExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9oYXNCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImhhcyIpOwogfQogCi1zdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c1Byb3RvdHlwZUZ1bmN0aW9uRW50cmllc0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3Bl
cmF0aW9uPEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpDbGFzc1BhcmFt
ZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9lbnRyaWVz
Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxG
cmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0TWFwTGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9ucz46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzIxLDEyICszMjEsMTIgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRF
bnRyaWVzVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVk
VGhpcykpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
UHJvdG90eXBlRnVuY3Rpb25fZW50cmllcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2FsbDxqc1Rlc3RNYXBM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbnRyaWVzIik7CisgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2Fs
bDxqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25f
ZW50cmllc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW50cmllcyIp
OwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uS2V5c0JvZHkoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnM+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5
cGVGdW5jdGlvbl9rZXlzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNU
ZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OkNsYXNzUGFyYW1ldGVyIGNhc3Rl
ZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzM1
LDEyICszMzUsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJ
RExBbnk+KGZvcndhcmRLZXlzVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25LZXlzLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fa2V5cywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2FsbDxqc1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25LZXlzQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJrZXlzIik7CisgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2Fs
bDxqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25f
a2V5c0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAia2V5cyIpOwogfQog
Ci1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQm9keShKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0
eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
cz46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1
bmN0aW9uX3ZhbHVlc0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVz
dE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRU
aGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM0OSwx
MiArMzQ5LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURM
QW55Pihmb3J3YXJkVmFsdWVzVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbl92YWx1ZXMsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmNhbGw8
anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uVmFs
dWVzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ2YWx1ZXMiKTsKKyAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnM+OjpjYWxsPGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVG
dW5jdGlvbl92YWx1ZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZh
bHVlcyIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHko
SlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnM+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNQcm90b3R5cGVGdW5jdGlvbl9mb3JFYWNoQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExP
cGVyYXRpb248SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OkNsYXNzUGFy
YW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMzY4LDEyICszNjgsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjpl
bmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRGb3JFYWNoVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShjYWxsYmFjaykpKSkpOwog
fQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1
bmN0aW9uX2ZvckVhY2gsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmNhbGw8anNUZXN0TWFwTGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZm9yRWFjaCIpOworICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmNhbGw8anNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uX2ZvckVhY2hCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZvckVhY2giKTsKIH0KIAotc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZUJvZHkoSlNDOjpKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5h
bWUgSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpD
bGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlv
bl9kZWxldGVCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
Qzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykK
IHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zODcsOSArMzg3
LDkgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZv
cndhcmREZWxldGVUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpj
YXN0ZWRUaGlzLCBXVEZNb3ZlKGtleSkpKSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9u
RGVsZXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fZGVsZXRlLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+
OjpjYWxsPGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5j
dGlvbkRlbGV0ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZGVsZXRl
Iik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zPjo6Y2FsbDxqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJv
dG90eXBlRnVuY3Rpb25fZGVsZXRlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJkZWxldGUiKTsKIH0KIAogSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0TWFwTGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uczo6c3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZtKQpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0
aElkZW50aWZpZXIuY3BwCShyZXZpc2lvbiAyNjg1NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw4ICs0OSw4IEBAIHVzaW5nIG5hbWVzcGFj
ZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25OYW1l
ZFNldHRlcik7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbl9uYW1lZFNldHRlcik7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90
eXBlRnVuY3Rpb25faW5kZXhlZFNldHRlcik7CiAKIC8vIEF0dHJpYnV0ZXMKIApAQCAtMTExLDgg
KzExMSw4IEBAIHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkQW4KIHN0YXRp
YyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllclByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogewogICAgIHsgImNvbnN0cnVjdG9yIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVj
dG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rv
cikgfSB9LAotICAgIHsgIm5hbWVkU2V0dGVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXIpLCAoaW50cHRyX3QpICgy
KSB9IH0sCi0gICAgeyAiaW5kZXhlZFNldHRlciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
V2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIpLCAoaW50cHRyX3Qp
ICgyKSB9IH0sCisgICAgeyAibmFtZWRTZXR0ZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
cldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25fbmFtZWRTZXR0ZXIpLCAoaW50cHRyX3Qp
ICgyKSB9IH0sCisgICAgeyAiaW5kZXhlZFNldHRlciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbl9pbmRleGVkU2V0dGVyKSwgKGludHB0
cl90KSAoMikgfSB9LAogfTsKIAogY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJ
ZGVudGlmaWVyUHJvdG90eXBlKSB9OwpAQCAtMzUyLDcgKzM1Miw3IEBAIEpTQ19ERUZJTkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3ROYW1lZEEKICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZFZhbHVlKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uTmFt
ZWRTZXR0ZXJCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
Qzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRo
aXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbl9uYW1lZFNldHRlckJvZHko
SlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zNzIsMTIgKzM3MiwxMiBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rp
b25OYW1lZFNldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbl9uYW1lZFNldHRl
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllcj46OmNhbGw8anNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0
aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVyQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJuYW1lZFNldHRlciIpOworICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI+OjpjYWxsPGpz
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25f
bmFtZWRTZXR0ZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm5hbWVk
U2V0dGVyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhl
ZFNldHRlckJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlND
OjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhp
cykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uX2luZGV4ZWRTZXR0ZXJCb2R5
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1l
KiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllcj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzk3LDkgKzM5Nyw5IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlv
bkluZGV4ZWRTZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25faW5kZXhlZFNl
dHRlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcj46OmNhbGw8anNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
V2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXJCb2R5PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImluZGV4ZWRTZXR0ZXIiKTsKKyAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyPjo6
Y2FsbDxqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1
bmN0aW9uX2luZGV4ZWRTZXR0ZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImluZGV4ZWRTZXR0ZXIiKTsKIH0KIAogSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OnN1YnNwYWNlRm9ySW1wbChKU0M6OlZNJiB2
bSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlm
aWVyLmNwcAkocmV2aXNpb24gMjY4NTQ3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5j
dGlvbnMKIAotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uTmFtZWREZWxldGVyKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5j
dGlvbl9uYW1lZERlbGV0ZXIpOwogCiAvLyBBdHRyaWJ1dGVzCiAKQEAgLTEwOCw3ICsxMDgsNyBA
QCB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZERlCiBzdGF0aWMgY29uc3Qg
SGFzaFRhYmxlVmFsdWUgSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVU
YWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0TmFt
ZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE5hbWVkRGVsZXRlcldp
dGhJZGVudGlmaWVyQ29uc3RydWN0b3IpIH0gfSwKLSAgICB7ICJuYW1lZERlbGV0ZXIiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZERlbGV0ZXIp
LCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAibmFtZWREZWxldGVyIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3ROYW1lZERl
bGV0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uX25hbWVkRGVsZXRlciksIChpbnRw
dHJfdCkgKDEpIH0gfSwKIH07CiAKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3ROYW1lZERlbGV0ZXJX
aXRoSWRlbnRpZmllclByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdE5hbWVkRGVsZXRlcldpdGhJ
ZGVudGlmaWVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZSkgfTsKQEAg
LTI1Nyw3ICsyNTcsNyBAQCBKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TmFtZWRE
CiAgICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5j
b25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1zdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZp
ZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkRGVsZXRlckJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUg
SURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyPjo6Q2xhc3NQYXJh
bWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uX25hbWVkRGVsZXRl
ckJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkRGVsZXRl
cldpdGhJZGVudGlmaWVyPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRv
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNzQsOSArMjc0LDkgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uTmFtZWREZWxldGVy
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRl
bnRpZmllclByb3RvdHlwZUZ1bmN0aW9uX25hbWVkRGVsZXRlciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcj46OmNhbGw8anNU
ZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkRGVsZXRl
ckJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibmFtZWREZWxldGVyIik7
CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmll
cj46OmNhbGw8anNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlv
bl9uYW1lZERlbGV0ZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm5h
bWVkRGVsZXRlciIpOwogfQogCiBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3ROYW1lZERlbGV0ZXJX
aXRoSWRlbnRpZmllcjo6c3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZtKQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0aElk
ZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmNwcAkocmV2aXNpb24g
MjY4NTQ3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0
Nyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVG
dW5jdGlvbkdldHRlck5hbWUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1l
ZEdldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25fZ2V0dGVyTmFtZSk7CiAKIC8v
IEF0dHJpYnV0ZXMKIApAQCAtMTA4LDcgKzEwOCw3IEBAIHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJ
bmZvIEpTVGVzdE5hbWVkR2UKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3ROYW1l
ZEdldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7CiAgICAgeyAi
Y29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25z
dHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcikgfSB9
LAotICAgIHsgImdldHRlck5hbWUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJQcm90
b3R5cGVGdW5jdGlvbkdldHRlck5hbWUpLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAiZ2V0
dGVyTmFtZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpG
dW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVG
dW5jdGlvbj4oanNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9u
X2dldHRlck5hbWUpLCAoaW50cHRyX3QpICgxKSB9IH0sCiB9OwogCiBjb25zdCBDbGFzc0luZm8g
SlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZTo6c19pbmZvID0geyAiVGVz
dE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJQ
cm90b3R5cGUpIH07CkBAIC0yMzUsNyArMjM1LDcgQEAgSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE5hbWVkRwogICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUp
KTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkR2V0
dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkdldHRlck5hbWVCb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVy
Pjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25f
Z2V0dGVyTmFtZUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE5h
bWVkR2V0dGVyV2l0aElkZW50aWZpZXI+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewog
ICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI1MCw5ICsyNTAsOSBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETERPTVN0cmluZz4o
KmxleGljYWxHbG9iYWxPYmplY3QsIGltcGwuZ2V0dGVyTmFtZShXVEZNb3ZlKG5hbWUpKSkpKTsK
IH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50
aWZpZXJQcm90b3R5cGVGdW5jdGlvbkdldHRlck5hbWUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbl9n
ZXR0ZXJOYW1lLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkR2V0
dGVyV2l0aElkZW50aWZpZXI+OjpjYWxsPGpzVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJQ
cm90b3R5cGVGdW5jdGlvbkdldHRlck5hbWVCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgImdldHRlck5hbWUiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5h
bWVkR2V0dGVyV2l0aElkZW50aWZpZXI+OjpjYWxsPGpzVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50
aWZpZXJQcm90b3R5cGVGdW5jdGlvbl9nZXR0ZXJOYW1lQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJnZXR0ZXJOYW1lIik7CiB9CiAKIEpTQzo6SXNvU3Vic3BhY2UqIEpT
VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXI6OnN1YnNwYWNlRm9ySW1wbChKU0M6OlZNJiB2
bSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ci5jcHAJKHJldmlzaW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDcsNyArNDcsNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlv
bnMKIAotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZFNldHRlcldpdGhJZGVu
dGlmaWVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNldHRlcik7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbl9u
YW1lZFNldHRlcik7CiAKIC8vIEF0dHJpYnV0ZXMKIApAQCAtMTA4LDcgKzEwOCw3IEBAIHRlbXBs
YXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkU2UKIHN0YXRpYyBjb25zdCBIYXNoVGFi
bGVWYWx1ZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlVGFibGVWYWx1
ZXNbXSA9CiB7CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE5hbWVkU2V0dGVy
V2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZp
ZXJDb25zdHJ1Y3RvcikgfSB9LAotICAgIHsgIm5hbWVkU2V0dGVyIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3ROYW1lZFNldHRl
cldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNldHRlciksIChpbnRwdHJfdCkg
KDIpIH0gfSwKKyAgICB7ICJuYW1lZFNldHRlciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRp
ZmllclByb3RvdHlwZUZ1bmN0aW9uX25hbWVkU2V0dGVyKSwgKGludHB0cl90KSAoMikgfSB9LAog
fTsKIAogY29uc3QgQ2xhc3NJbmZvIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90
b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyIiwgJkJhc2U6
OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3ROYW1l
ZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlKSB9OwpAQCAtMzA0LDcgKzMwNCw3IEBAIEpT
Q19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3ROYW1lZFMKICAgICByZXR1cm4gcHJvdG90
eXBlLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25O
YW1lZFNldHRlckJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE5h
bWVkU2V0dGVyV2l0aElkZW50aWZpZXI+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50
aWZpZXJQcm90b3R5cGVGdW5jdGlvbl9uYW1lZFNldHRlckJvZHkoSlNDOjpKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5h
bWUgSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI+OjpDbGFzc1Bh
cmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTMyNCw5ICszMjQsOSBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZp
ZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25fbmFt
ZWRTZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSWRlbnRpZmllcj46OmNhbGw8anNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllclBy
b3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgIm5hbWVkU2V0dGVyIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RO
YW1lZFNldHRlcldpdGhJZGVudGlmaWVyPjo6Y2FsbDxqc1Rlc3ROYW1lZFNldHRlcldpdGhJZGVu
dGlmaWVyUHJvdG90eXBlRnVuY3Rpb25fbmFtZWRTZXR0ZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIm5hbWVkU2V0dGVyIik7CiB9CiAKIEpTQzo6SXNvU3Vic3BhY2Uq
IEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6OnN1YnNwYWNlRm9ySW1wbChKU0M6OlZN
JiB2bSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5k
ZXhlZEdldHRlci5jcHAJKHJldmlzaW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDksOCArNDksOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwog
CiAvLyBGdW5jdGlvbnMKIAotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNldHRlcik7Ci1KU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQ
cm90b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlRnVuY3Rpb25fbmFt
ZWRTZXR0ZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZFNldHRlcldp
dGhJbmRleGVkR2V0dGVyUHJvdG90eXBlRnVuY3Rpb25faW5kZXhlZFNldHRlcik7CiAKIC8vIEF0
dHJpYnV0ZXMKIApAQCAtMTExLDggKzExMSw4IEBAIHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdE5hbWVkU2UKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7CiAgICAgeyAi
Y29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJD
b25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rv
cikgfSB9LAotICAgIHsgIm5hbWVkU2V0dGVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVk
R2V0dGVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNldHRlciksIChpbnRwdHJfdCkgKDIpIH0gfSwK
LSAgICB7ICJpbmRleGVkU2V0dGVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVy
UHJvdG90eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAg
IHsgIm5hbWVkU2V0dGVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJh
d05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90
eXBlRnVuY3Rpb25fbmFtZWRTZXR0ZXIpLCAoaW50cHRyX3QpICgyKSB9IH0sCisgICAgeyAiaW5k
ZXhlZFNldHRlciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZUZ1
bmN0aW9uX2luZGV4ZWRTZXR0ZXIpLCAoaW50cHRyX3QpICgxKSB9IH0sCiB9OwogCiBjb25zdCBD
bGFzc0luZm8gSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZTo6c19p
bmZvID0geyAiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIiLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkU2V0dGVy
V2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGUpIH07CkBAIC0zMjksNyArMzI5LDcgQEAgSlNDX0RF
RklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE5hbWVkUwogICAgIHJldHVybiBwcm90b3R5cGUt
PnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbk5h
bWVkU2V0dGVyQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlcj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5k
ZXhlZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uX25hbWVkU2V0dGVyQm9keShKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0
eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlcj46
OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMzQ5LDEyICszNDksMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZFNldHRlcldp
dGhJbmRleGVkR2V0dGVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNldHRlciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclByb3Rv
dHlwZUZ1bmN0aW9uX25hbWVkU2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXI+OjpjYWxsPGpzVGVzdE5hbWVkU2V0
dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVyQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJuYW1lZFNldHRlciIpOworICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlcj46OmNhbGw8
anNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uX25hbWVk
U2V0dGVyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJuYW1lZFNldHRl
ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlckJvZHko
SlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkU2V0dGVyV2l0aElu
ZGV4ZWRHZXR0ZXI+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90
b3R5cGVGdW5jdGlvbl9pbmRleGVkU2V0dGVyQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExP
cGVyYXRpb248SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlcj46OkNsYXNzUGFyYW1l
dGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMzY5LDkgKzM2OSw5IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2Rl
KHRvSlM8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgaW1wbC5pbmRleGVkU2V0
dGVyKFdURk1vdmUoaW5kZXgpKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4ZWRT
ZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbl9pbmRleGVkU2V0dGVyLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXI+
OjpjYWxsPGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlv
bkluZGV4ZWRTZXR0ZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImlu
ZGV4ZWRTZXR0ZXIiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkU2V0dGVy
V2l0aEluZGV4ZWRHZXR0ZXI+OjpjYWxsPGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXJQcm90b3R5cGVGdW5jdGlvbl9pbmRleGVkU2V0dGVyQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJpbmRleGVkU2V0dGVyIik7CiB9CiAKIEpTQzo6SXNvU3Vic3BhY2Uq
IEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXI6OnN1YnNwYWNlRm9ySW1wbChKU0M6
OlZNJiB2bSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5jcHAJKHJldmlzaW9uIDI2ODU0NykKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
cldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDksOCAr
NDksOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0
dGVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNldHRlcik7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5cGVG
dW5jdGlvbkluZGV4ZWRTZXR0ZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RO
YW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlRnVuY3Rpb25fbmFt
ZWRTZXR0ZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZFNldHRlcldp
dGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlRnVuY3Rpb25faW5kZXhlZFNldHRlcik7
CiAKIC8vIEF0dHJpYnV0ZXMKIApAQCAtMTExLDggKzExMSw4IEBAIHRlbXBsYXRlPD4gY29uc3Qg
Q2xhc3NJbmZvIEpTVGVzdE5hbWVkU2UKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rl
c3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlVGFibGVWYWx1
ZXNbXSA9CiB7CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE5hbWVkU2V0dGVy
V2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE5hbWVkU2V0dGVy
V2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcikgfSB9LAotICAgIHsgIm5hbWVk
U2V0dGVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1
bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90
eXBlRnVuY3Rpb25OYW1lZFNldHRlciksIChpbnRwdHJfdCkgKDIpIH0gfSwKLSAgICB7ICJpbmRl
eGVkU2V0dGVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJv
dG90eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsg
Im5hbWVkU2V0dGVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVy
UHJvdG90eXBlRnVuY3Rpb25fbmFtZWRTZXR0ZXIpLCAoaW50cHRyX3QpICgyKSB9IH0sCisgICAg
eyAiaW5kZXhlZFNldHRlciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxS
YXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNl
dHRlclByb3RvdHlwZUZ1bmN0aW9uX2luZGV4ZWRTZXR0ZXIpLCAoaW50cHRyX3QpICgxKSB9IH0s
CiB9OwogCiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
ckFuZFNldHRlclByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJBbmRTZXR0ZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0
ZXJQcm90b3R5cGUpIH07CkBAIC0zNTIsNyArMzUyLDcgQEAgSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdE5hbWVkUwogICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwg
dm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFs
dWUpKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0
dGVyQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNh
bGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlcj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMp
CitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRo
SW5kZXhlZEdldHRlckFuZFNldHRlclByb3RvdHlwZUZ1bmN0aW9uX25hbWVkU2V0dGVyQm9keShK
U0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSog
Y2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5k
ZXhlZEdldHRlckFuZFNldHRlcj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzcyLDEyICszNzIsMTIgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlRnVu
Y3Rpb25OYW1lZFNldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclByb3RvdHlwZUZ1bmN0aW9uX25hbWVk
U2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkU2V0dGVy
V2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXI+OjpjYWxsPGpzVGVzdE5hbWVkU2V0dGVyV2l0aElu
ZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVyQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJuYW1lZFNldHRlciIpOworICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRl
cj46OmNhbGw8anNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclByb3Rv
dHlwZUZ1bmN0aW9uX25hbWVkU2V0dGVyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJuYW1lZFNldHRlciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclByb3RvdHlw
ZUZ1bmN0aW9uSW5kZXhlZFNldHRlcjFCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJh
dGlvbjxKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyPjo6Q2xhc3NQ
YXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlRnVuY3Rp
b25faW5kZXhlZFNldHRlcjFCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxK
U1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyPjo6Q2xhc3NQYXJhbWV0
ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0zOTUsNyArMzk1LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyMkJvZHkoSlND
OjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJBbmRTZXR0ZXI+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXJBbmRTZXR0ZXJQcm90b3R5cGVGdW5jdGlvbl9pbmRleGVkU2V0dGVyMkJvZHkoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXJBbmRTZXR0ZXI+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQwOCw3ICs0MDgsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETERPTVN0cmluZz4oKmxleGljYWxHbG9i
YWxPYmplY3QsIGltcGwuaW5kZXhlZFNldHRlcihXVEZNb3ZlKGluZGV4KSkpKSk7CiB9CiAKLXN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyT3ZlcmxvYWRE
aXNwYXRjaGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhp
cykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldp
dGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlRnVuY3Rpb25faW5kZXhlZFNldHRlck92
ZXJsb2FkRGlzcGF0Y2hlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlcj46OkNsYXNzUGFyYW1ldGVyIGNh
c3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
NDE2LDE3ICs0MTYsMTcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dAogICAgIFVOVVNFRF9QQVJBTShjYWxsRnJhbWUpOwogICAgIHNpemVfdCBhcmdzQ291bnQgPSBz
dGQ6Om1pbjxzaXplX3Q+KDIsIGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpKTsKICAgICBpZiAo
YXJnc0NvdW50ID09IDEpIHsKLSAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
IChqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlRnVu
Y3Rpb25JbmRleGVkU2V0dGVyMkJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBj
YXN0ZWRUaGlzKSkpOworICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpz
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5cGVGdW5jdGlv
bl9pbmRleGVkU2V0dGVyMkJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0
ZWRUaGlzKSkpOwogICAgIH0KICAgICBpZiAoYXJnc0NvdW50ID09IDIpIHsKLSAgICAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVk
R2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyMUJvZHkobGV4aWNh
bEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOworICAgICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXJBbmRTZXR0ZXJQcm90b3R5cGVGdW5jdGlvbl9pbmRleGVkU2V0dGVyMUJvZHkobGV4aWNhbEds
b2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOwogICAgIH0KICAgICByZXR1cm4g
YXJnc0NvdW50IDwgMSA/IHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSkg
OiB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwogfQog
Ci1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlckFuZFNldHRlclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNl
dHRlclByb3RvdHlwZUZ1bmN0aW9uX2luZGV4ZWRTZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlcj46
OmNhbGw8anNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclByb3RvdHlw
ZUZ1bmN0aW9uSW5kZXhlZFNldHRlck92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJpbmRleGVkU2V0dGVyIik7CisgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyPjo6Y2FsbDxq
c1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlRnVuY3Rp
b25faW5kZXhlZFNldHRlck92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJpbmRleGVkU2V0dGVyIik7CiB9CiAKIEpTQzo6SXNvU3Vic3BhY2UqIEpT
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXI6OnN1YnNwYWNlRm9ySW1w
bChKU0M6OlZNJiB2bSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXMuY3BwCShyZXZp
c2lvbiAyNjg1NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDgsMTMgKzQ4LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8v
IEZ1bmN0aW9ucwogCi1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0luc3RhbmNlRnVuY3Rpb25VbmZvcmdlYWJs
ZU9wZXJhdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0luc3RhbmNlRnVuY3Rpb25fdW5mb3JnZWFi
bGVPcGVyYXRpb24pOwogCiAvLyBBdHRyaWJ1dGVzCiAKIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3Ry
dWN0b3IpOwogSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVy
dGllc1VuZm9yZ2VhYmxlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzX3VuZm9yZ2VhYmxl
QXR0cmlidXRlKTsKIAogY2xhc3MgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVj
dCB7CiBwdWJsaWM6CkBAIC0xMDIsOCArMTAyLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21w
YWN0SGFzaEluZGV4IEpTVAogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzVGFibGVWYWx1ZXNbXSA9CiB7
Ci0gICAgeyAidW5mb3JnZWFibGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE5hbWVkU2V0
dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc1VuZm9yZ2VhYmxlQXR0cmlidXRlKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkg
fSB9LAotICAgIHsgInVuZm9yZ2VhYmxlT3BlcmF0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNJbnN0YW5jZUZ1bmN0aW9u
VW5mb3JnZWFibGVPcGVyYXRpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAidW5mb3Jn
ZWFibGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllc191bmZvcmdlYWJsZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJ1
bmZvcmdlYWJsZU9wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkg
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzSW5zdGFuY2VGdW5jdGlvbl91bmZvcmdlYWJsZU9w
ZXJhdGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwKIH07CiAKIHN0YXRpYyBjb25zdCBIYXNoVGFi
bGUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzVGFibGUg
PSB7IDIsIDMsIHRydWUsIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllczo6aW5mbygpLCBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVBy
b3BlcnRpZXNUYWJsZVZhbHVlcywgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzVGFibGVJbmRleCB9OwpAQCAtMzM0LDcgKzMzNCw3IEBAIEpTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3ROYW1lZFMKICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXRE
aXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZFZhbHVlKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3ROYW1lZFNl
dHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNVbmZvcmdlYWJsZUF0dHJpYnV0ZUdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzJiB0aGlzT2JqZWN0KQorc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVy
dGllc191bmZvcmdlYWJsZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0
aWVzJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0zNDIsMTIgKzM0MiwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0TmFt
ZWRTZXR0ZXJXCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERP
TVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bmZvcmdlYWJs
ZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzVW5mb3JnZWFibGVBdHRyaWJ1
dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc191bmZvcmdlYWJsZUF0
dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXM+OjpnZXQ8
anNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzVW5mb3JnZWFi
bGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bmZvcmdlYWJsZUF0dHJpYnV0ZSIpOworICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzPjo6Z2V0PGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxl
UHJvcGVydGllc191bmZvcmdlYWJsZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVuZm9yZ2Vh
YmxlQXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNJbnN0YW5jZUZ1
bmN0aW9uVW5mb3JnZWFibGVPcGVyYXRpb25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9w
ZXJhdGlvbjxKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXM+
OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0lu
c3RhbmNlRnVuY3Rpb25fdW5mb3JnZWFibGVPcGVyYXRpb25Cb2R5KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVu
YW1lIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVBy
b3BlcnRpZXM+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM1OSw5ICszNTksOSBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0luc3RhbmNlRnVuY3Rpb25VbmZv
cmdlYWJsZU9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzSW5zdGFuY2VGdW5jdGlvbl91
bmZvcmdlYWJsZU9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXM+OjpjYWxsPGpzVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0luc3RhbmNlRnVuY3Rp
b25VbmZvcmdlYWJsZU9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAidW5mb3JnZWFibGVPcGVyYXRpb24iKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcz46OmNhbGw8anNU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzSW5zdGFuY2VGdW5j
dGlvbl91bmZvcmdlYWJsZU9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAidW5mb3JnZWFibGVPcGVyYXRpb24iKTsKIH0KIAogSlNDOjpJc29TdWJzcGFjZSog
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzOjpzdWJzcGFj
ZUZvckltcGwoSlNDOjpWTSYgdm0pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0
aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCShyZXZp
c2lvbiAyNjg1NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5
T3ZlcnJpZGVCdWlsdElucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDEzICs0OCwxMyBAQCB1
c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNB
bmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlT3BlcmF0
aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0luc3RhbmNl
RnVuY3Rpb25fdW5mb3JnZWFibGVPcGVyYXRpb24pOwogCiAvLyBBdHRyaWJ1dGVzCiAKIEpTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKTsKIEpTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3Jn
ZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKTsKLUpT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3Jn
ZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc1VuZm9yZ2VhYmxlQXR0cmli
dXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc191bmZvcmdl
YWJsZUF0dHJpYnV0ZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9y
Z2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGUgZmluYWwg
OiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTEwMiw4ICsxMDIs
OCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUCiAKIHN0YXRpYyBj
b25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJs
ZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zVGFibGVWYWx1ZXNbXSA9CiB7Ci0g
ICAgeyAidW5mb3JnZWFibGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNV
bmZvcmdlYWJsZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKLSAgICB7ICJ1bmZvcmdlYWJsZU9wZXJhdGlvbiIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRl
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdO
YXRpdmVGdW5jdGlvbj4oanNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9w
ZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0luc3RhbmNlRnVuY3Rpb25VbmZvcmdlYWJs
ZU9wZXJhdGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJ1bmZvcmdlYWJsZUF0dHJp
YnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0
dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQ
cm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc191bmZvcmdlYWJsZUF0dHJpYnV0ZSks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDAp
IH0gfSwKKyAgICB7ICJ1bmZvcmdlYWJsZU9wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0
TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJp
ZGVCdWlsdEluc0luc3RhbmNlRnVuY3Rpb25fdW5mb3JnZWFibGVPcGVyYXRpb24pLCAoaW50cHRy
X3QpICgwKSB9IH0sCiB9OwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdE5hbWVkU2V0
dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnNUYWJsZSA9IHsgMiwgMywgdHJ1ZSwgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3Jn
ZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluczo6aW5mbygpLCBKU1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zVGFibGVWYWx1ZXMsIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2Vh
YmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNUYWJsZUluZGV4IH07CkBAIC0z
MTUsNyArMzE1LDcgQEAgSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE5hbWVkUwog
ICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29u
c3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVy
dGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNVbmZvcmdlYWJsZUF0dHJpYnV0ZUdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucyYgdGhp
c09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zX3VuZm9yZ2Vh
YmxlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lP
dmVycmlkZUJ1aWx0SW5zJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0zMjMsMTIgKzMyMywxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0TmFtZWRTZXR0ZXJXCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1w
bC51bmZvcmdlYWJsZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVn
YWN5T3ZlcnJpZGVCdWlsdEluc1VuZm9yZ2VhYmxlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zX3VuZm9yZ2Vh
YmxlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0Fu
ZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM+OjpnZXQ8anNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc1VuZm9yZ2VhYmxl
QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidW5mb3JnZWFibGVBdHRyaWJ1dGUiKTsKKyAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxl
UHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM+OjpnZXQ8anNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElu
c191bmZvcmdlYWJsZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVuZm9yZ2VhYmxlQXR0cmli
dXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1l
ZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1
aWx0SW5zSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlT3BlcmF0aW9uQm9keShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1l
LCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3Jn
ZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucz46OkNsYXNzUGFyYW1ldGVy
IGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVC
dWlsdEluc0luc3RhbmNlRnVuY3Rpb25fdW5mb3JnZWFibGVPcGVyYXRpb25Cb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zPjo6Q2xhc3NQYXJhbWV0
ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0zNDAsOSArMzQwLDkgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdl
YWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zSW5zdGFuY2VGdW5jdGlvblVu
Zm9yZ2VhYmxlT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zSW5zdGFuY2VGdW5jdGlvbl91bmZvcmdlYWJsZU9wZXJhdGlvbiwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0g
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdl
YWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zPjo6Y2FsbDxqc1Rlc3ROYW1l
ZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1
aWx0SW5zSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlT3BlcmF0aW9uQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ1bmZvcmdlYWJsZU9wZXJhdGlvbiIpOworICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQ
cm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucz46OmNhbGw8anNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElu
c0luc3RhbmNlRnVuY3Rpb25fdW5mb3JnZWFibGVPcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgInVuZm9yZ2VhYmxlT3BlcmF0aW9uIik7CiB9CiAKIEpTQzo6
SXNvU3Vic3BhY2UqIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVy
dGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM6OnN1YnNwYWNlRm9ySW1wbChKU0M6OlZNJiB2
bSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
b2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Tm9kZS5jcHAJKHJldmlzaW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTQsMjUgKzU0LDI1IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwog
Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRl
c3RXb3JrZXJQcm9taXNlKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Tm9kZVBy
b3RvdHlwZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0UmVzdWx0KTsKLUpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbik7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbl90ZXN0
V29ya2VyUHJvbWlzZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90
b3R5cGVGdW5jdGlvbl9jYWxjdWxhdGVTZWNyZXRSZXN1bHQpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25fZ2V0U2VjcmV0Qm9vbGVhbik7CiAj
aWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RGZWF0
dXJlR2V0U2VjcmV0Qm9vbGVhbik7CiAjZW5kaWYKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uU3ltYm9sSXRlcmF0b3IpOwotSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKTsK
LUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uS2V5
cyk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlv
blZhbHVlcyk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVG
dW5jdGlvbkZvckVhY2gpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJv
dG90eXBlRnVuY3Rpb25fdG9KU09OKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
Tm9kZVByb3RvdHlwZUZ1bmN0aW9uX1N5bWJvbEl0ZXJhdG9yKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uX2VudHJpZXMpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25fa2V5cyk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbl92YWx1ZXMp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25f
Zm9yRWFjaCk7CiAKIC8vIEF0dHJpYnV0ZXMKIAogSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3ROb2RlQ29uc3RydWN0b3IpOwogSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3ROb2RlQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3ROb2Rl
TmFtZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE5vZGVOYW1lKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0Tm9kZV9uYW1lKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0Tm9kZV9uYW1lKTsKIAogY2xhc3MgSlNUZXN0Tm9kZVByb3Rv
dHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAt
MTQ0LDIwICsxNDQsMjAgQEAgdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0Tm9kZURP
TQogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE5vZGVQcm90b3R5cGVUYWJsZVZh
bHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Tm9kZUNvbnN0
cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0Tm9kZUNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAibmFtZSIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0Tm9k
ZU5hbWUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3ROb2RlTmFtZSkgfSB9LAotICAgIHsgInRlc3RXb3JrZXJQcm9taXNlIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25UZXN0V29ya2VyUHJvbWlzZSksIChpbnRwdHJfdCkg
KDApIH0gfSwKLSAgICB7ICJjYWxjdWxhdGVTZWNyZXRSZXN1bHQiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE5vZGVQcm90b3R5
cGVGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdCksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAg
ICB7ICJnZXRTZWNyZXRCb29sZWFuIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25HZXRTZWNy
ZXRCb29sZWFuKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgIm5hbWUiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE5vZGVfbmFt
ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdE5vZGVfbmFtZSkgfSB9LAorICAgIHsgInRlc3RXb3JrZXJQcm9taXNlIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3ROb2RlUHJvdG90eXBlRnVuY3Rpb25fdGVzdFdvcmtlclByb21pc2UpLCAoaW50cHRyX3QpICgw
KSB9IH0sCisgICAgeyAiY2FsY3VsYXRlU2VjcmV0UmVzdWx0Iiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3ROb2RlUHJvdG90eXBl
RnVuY3Rpb25fY2FsY3VsYXRlU2VjcmV0UmVzdWx0KSwgKGludHB0cl90KSAoMCkgfSB9LAorICAg
IHsgImdldFNlY3JldEJvb2xlYW4iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbl9nZXRTZWNy
ZXRCb29sZWFuKSwgKGludHB0cl90KSAoMCkgfSB9LAogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUp
Ci0gICAgeyAidGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3ROb2RlUHJvdG90eXBl
RnVuY3Rpb25UZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4pLCAoaW50cHRyX3QpICgwKSB9IH0s
CisgICAgeyAidGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3ROb2RlUHJvdG90eXBl
RnVuY3Rpb25fdGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKSwgKGludHB0cl90KSAoMCkgfSB9
LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCi0g
ICAgeyAidG9KU09OIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25Ub0pTT04pLCAoaW50cHRy
X3QpICgwKSB9IH0sCi0gICAgeyAiZW50cmllcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9u
RW50cmllcyksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJrZXlzIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3ROb2RlUHJv
dG90eXBlRnVuY3Rpb25LZXlzKSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgInZhbHVlcyIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4o
anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKSwgKGludHB0cl90KSAoMCkgfSB9LAot
ICAgIHsgImZvckVhY2giLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpLCAoaW50
cHRyX3QpICgxKSB9IH0sCisgICAgeyAidG9KU09OIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rp
b25fdG9KU09OKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgImVudHJpZXMiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE5v
ZGVQcm90b3R5cGVGdW5jdGlvbl9lbnRyaWVzKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsg
ImtleXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVu
Y3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbl9rZXlzKSwgKGludHB0cl90KSAoMCkg
fSB9LAorICAgIHsgInZhbHVlcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uX3ZhbHVlcyks
IChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJmb3JFYWNoIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3ROb2RlUHJvdG90eXBl
RnVuY3Rpb25fZm9yRWFjaCksIChpbnRwdHJfdCkgKDEpIH0gfSwKIH07CiAKIGNvbnN0IENsYXNz
SW5mbyBKU1Rlc3ROb2RlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0Tm9kZSIsICZCYXNlOjpz
X2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Tm9kZVBy
b3RvdHlwZSkgfTsKQEAgLTI4OCw3ICsyODgsNyBAQCBKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0Tm9kZUNvCiAgICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkp
OwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Tm9kZU5hbWVHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE5vZGUmIHRoaXNPYmplY3QpCitz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Tm9kZV9uYW1lR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3ROb2RlJiB0aGlzT2JqZWN0KQogewogICAgIGF1
dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yOTYsMTIgKzI5NiwxMiBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Tm9kZU5hbWVHZXR0CiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgaW1wbC5uYW1lKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3ROb2RlTmFtZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0Tm9kZV9uYW1lLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE5vZGU+OjpnZXQ8anNUZXN0Tm9kZU5hbWVHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJuYW1lIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3ROb2Rl
Pjo6Z2V0PGpzVGVzdE5vZGVfbmFtZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm5hbWUiKTsKIH0KIAotc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdE5vZGVOYW1lU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3ROb2RlJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVl
KQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE5vZGVfbmFtZVNldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0Tm9kZSYgdGhpc09iamVjdCwgSlNWYWx1
ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MzE0LDEyICszMTQsMTIgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE5vZGVOYW1lU2V0
dAogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0Tm9kZU5hbWUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RF
RklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE5vZGVfbmFtZSwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3ROb2Rl
Pjo6c2V0PHNldEpTVGVzdE5vZGVOYW1lU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJuYW1lIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3ROb2RlPjo6c2V0PHNldEpTVGVzdE5vZGVfbmFtZVNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibmFtZSIpOwogfQogCi1zdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVGVzdFdv
cmtlclByb21pc2VCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvblJldHVybmlu
Z1Byb21pc2U8SlNUZXN0Tm9kZT46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMsIFJlZjxEZWZl
cnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25fdGVzdFdvcmtlclByb21pc2VCb2R5KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxs
RnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0Tm9kZT46
OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlz
ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMzEsMTIg
KzMzMSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRlc3RXb3JrZXJQcm9taXNl
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rp
b25fdGVzdFdvcmtlclByb21pc2UsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb25SZXR1
cm5pbmdQcm9taXNlPEpTVGVzdE5vZGU+OjpjYWxsPGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlv
blRlc3RXb3JrZXJQcm9taXNlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJ0ZXN0V29ya2VyUHJvbWlzZSIpOworICAgIHJldHVybiBJRExPcGVyYXRpb25SZXR1cm5pbmdQ
cm9taXNlPEpTVGVzdE5vZGU+OjpjYWxsPGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbl90ZXN0
V29ya2VyUHJvbWlzZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVz
dFdvcmtlclByb21pc2UiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdEJvZHkoSlND
OjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3ROb2Rl
Pjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcywgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9t
aXNlKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVQcm90b3R5
cGVGdW5jdGlvbl9jYWxjdWxhdGVTZWNyZXRSZXN1bHRCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1l
IElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0Tm9kZT46OkNsYXNzUGFyYW1ldGVy
IGNhc3RlZFRoaXMsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKICAgICBhdXRv
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zNDgsMTIgKzM0OCwxMiBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdCwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uX2NhbGN1bGF0
ZVNlY3JldFJlc3VsdCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvblJldHVybmluZ1By
b21pc2U8SlNUZXN0Tm9kZT46OmNhbGw8anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uQ2FsY3Vs
YXRlU2VjcmV0UmVzdWx0Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJj
YWxjdWxhdGVTZWNyZXRSZXN1bHQiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uUmV0dXJuaW5n
UHJvbWlzZTxKU1Rlc3ROb2RlPjo6Y2FsbDxqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25fY2Fs
Y3VsYXRlU2VjcmV0UmVzdWx0Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJjYWxjdWxhdGVTZWNyZXRSZXN1bHQiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkdldFNlY3JldEJvb2xlYW5Cb2R5
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1l
KiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3ROb2RlPjo6Q2xhc3NQYXJh
bWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3ROb2RlUHJvdG90eXBlRnVuY3Rpb25fZ2V0U2VjcmV0Qm9vbGVhbkJvZHkoSlNDOjpKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
dHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE5vZGU+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRU
aGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM2Mywx
MyArMzYzLDEzIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURM
Qm9vbGVhbj4oaW1wbC5nZXRTZWNyZXRCb29sZWFuKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25HZXRTZWNyZXRCb29sZWFuLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25f
Z2V0U2VjcmV0Qm9vbGVhbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RO
b2RlPjo6Y2FsbDxqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25HZXRTZWNyZXRCb29sZWFuQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJnZXRTZWNyZXRCb29sZWFuIik7
CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROb2RlPjo6Y2FsbDxqc1Rlc3ROb2RlUHJv
dG90eXBlRnVuY3Rpb25fZ2V0U2VjcmV0Qm9vbGVhbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAiZ2V0U2VjcmV0Qm9vbGVhbiIpOwogfQogCiAjaWYgRU5BQkxFKFRFU1Rf
RkVBVFVSRSkKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlUHJv
dG90eXBlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW5Cb2R5KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUs
IHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3ROb2RlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVk
VGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlUHJvdG90
eXBlRnVuY3Rpb25fdGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuQm9keShKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0
eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0Tm9kZT46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRo
aXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzc5LDE0
ICszNzksMTQgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExC
b29sZWFuPihpbXBsLnRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbigpKSkpOwogfQogCi1KU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVGVzdEZlYXR1
cmVHZXRTZWNyZXRCb29sZWFuLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RO
b2RlUHJvdG90eXBlRnVuY3Rpb25fdGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
LSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5vZGU+OjpjYWxsPGpzVGVzdE5vZGVQcm90
b3R5cGVGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbkJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuIik7Cisg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROb2RlPjo6Y2FsbDxqc1Rlc3ROb2RlUHJvdG90
eXBlRnVuY3Rpb25fdGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4iKTsKIH0K
IAogI2VuZGlmCiAKLXN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZVByb3Rv
dHlwZUZ1bmN0aW9uVG9KU09OQm9keShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiwgSlNUZXN0Tm9kZSogY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgRW5j
b2RlZEpTVmFsdWUganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uX3RvSlNPTkJvZHkoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSosIEpTVGVzdE5vZGUqIGNh
c3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
Mzk3LDkgKzM5Nyw5IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZVAK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25Ub0pTT04sIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbl90b0pTT04sIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Tm9kZT46OmNhbGw8anNUZXN0Tm9k
ZVByb3RvdHlwZUZ1bmN0aW9uVG9KU09OQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJ0b0pTT04iKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5vZGU+Ojpj
YWxsPGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbl90b0pTT05Cb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgInRvSlNPTiIpOwogfQogCiBzdHJ1Y3QgVGVzdE5vZGVJdGVy
YXRvclRyYWl0cyB7CkBAIC00NjYsNDQgKzQ2Niw0NCBAQCBjb25zdCBKU0M6OkNsYXNzSW5mbyBU
ZXN0Tm9kZUl0ZXJhdG9yOjpzCiB0ZW1wbGF0ZTw+CiBjb25zdCBKU0M6OkNsYXNzSW5mbyBUZXN0
Tm9kZUl0ZXJhdG9yUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0Tm9kZSBJdGVyYXRvciIsICZC
YXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoVGVzdE5v
ZGVJdGVyYXRvclByb3RvdHlwZSkgfTsKIAotc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQ2FsbGVyKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKiwgSlNUZXN0Tm9kZSogdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uX2VudHJpZXNDYWxsZXIoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqLCBKU1Rlc3ROb2RlKiB0aGlzT2JqZWN0KQogewogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoaXRlcmF0b3JDcmVhdGU8VGVzdE5vZGVJdGVyYXRvcj4oKnRo
aXNPYmplY3QsIEl0ZXJhdGlvbktpbmQ6OlZhbHVlcykpOwogfQogCi1KU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcywgKEpTQzo6SlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbl9l
bnRyaWVzLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RO
b2RlPjo6Y2FsbDxqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQ2FsbGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImVudHJpZXMiKTsKKyAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdE5vZGU+OjpjYWxsPGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbl9l
bnRyaWVzQ2FsbGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImVudHJpZXMi
KTsKIH0KIAotc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlUHJvdG90eXBl
RnVuY3Rpb25LZXlzQ2FsbGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiwgSlNUZXN0Tm9k
ZSogdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZVBy
b3RvdHlwZUZ1bmN0aW9uX2tleXNDYWxsZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqLCBK
U1Rlc3ROb2RlKiB0aGlzT2JqZWN0KQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaXRl
cmF0b3JDcmVhdGU8VGVzdE5vZGVJdGVyYXRvcj4oKnRoaXNPYmplY3QsIEl0ZXJhdGlvbktpbmQ6
OktleXMpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5
cGVGdW5jdGlvbktleXMsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25fa2V5cywgKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0Tm9kZT46OmNhbGw8anNUZXN0Tm9kZVByb3RvdHlwZUZ1
bmN0aW9uS2V5c0NhbGxlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJrZXlz
Iik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROb2RlPjo6Y2FsbDxqc1Rlc3ROb2Rl
UHJvdG90eXBlRnVuY3Rpb25fa2V5c0NhbGxlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJrZXlzIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0
Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQ2FsbGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKiwgSlNUZXN0Tm9kZSogdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFs
dWUganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uX3ZhbHVlc0NhbGxlcihKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSosIEpTVGVzdE5vZGUqIHRoaXNPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShpdGVyYXRvckNyZWF0ZTxUZXN0Tm9kZUl0ZXJhdG9yPigqdGhpc09iamVj
dCwgSXRlcmF0aW9uS2luZDo6VmFsdWVzKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMsIChKU0M6OkpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25fdmFsdWVzLCAo
SlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROb2RlPjo6Y2Fs
bDxqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNDYWxsZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3ROb2RlPjo6Y2FsbDxqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25fdmFsdWVzQ2FsbGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZhbHVlcyIpOwogfQogCi1zdGF0
aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkZvckVh
Y2hDYWxsZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lLCBKU1Rlc3ROb2RlKiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25fZm9yRWFjaENhbGxlcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVGVz
dE5vZGUqIHRoaXNPYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShpdGVyYXRv
ckZvckVhY2g8VGVzdE5vZGVJdGVyYXRvcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICp0aGlzT2JqZWN0KSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RO
b2RlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uX2ZvckVhY2gsIChKU0M6OkpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5vZGU+OjpjYWxsPGpzVGVz
dE5vZGVQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hDYWxsZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAiZm9yRWFjaCIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
Tm9kZT46OmNhbGw8anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uX2ZvckVhY2hDYWxsZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZm9yRWFjaCIpOwogfQogCiBKU0M6Oklz
b1N1YnNwYWNlKiBKU1Rlc3ROb2RlOjpzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0pCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmNwcAkocmV2aXNpb24gMjY4NTQ3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MjIsMzk1
ICsxNDIyLDM5NSBAQCB0ZW1wbGF0ZTw+IFRlc3RPYmo6OkNvbmRpdGlvbmFsRGljdGlvbmFyCiAv
LyBGdW5jdGlvbnMKIAogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1KU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJh
dGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uX2VuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24pOwogI2VuZGlmCiAjaWYgRU5BQkxFKFRFU1Rf
RkVBVFVSRSkKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JG
dW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWMpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uX2VuYWJsZWRBdFJ1bnRpbWVP
cGVyYXRpb25TdGF0aWMpOwogI2VuZGlmCi1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVh
dHVyZUVuYWJsZWQpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbldvcmxkU3BlY2lmaWNNZXRob2QpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdCk7Ci1KU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0U2VjcmV0
Qm9vbGVhbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uX2VuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd29y
bGRTcGVjaWZpY01ldGhvZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX2NhbGN1bGF0ZVNlY3JldFJlc3VsdCk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2dldFNlY3JldEJvb2xlYW4pOwog
I2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fdGVzdEZlYXR1
cmVHZXRTZWNyZXRCb29sZWFuKTsKICNlbmRpZgotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblVuZGVmaW5lZE1ldGhvZCk7Ci1KU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVW5kZWZpbmVkTWV0aG9kV2l0
aEFyZ3MpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkJ5dGVNZXRob2QpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2RXaXRoQXJncyk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0ZXRNZXRob2QpOwotSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kV2l0aEFy
Z3MpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkxvbmdNZXRob2QpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkxvbmdNZXRob2RXaXRoQXJncyk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kKTsKLUpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJncyk7Ci1K
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakluc3RhbmNlRnVuY3Rpb25VbmZvcmdl
YWJsZU1ldGhvZCk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aEFyZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpOwotSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhY
UGF0aE5TUmVzb2x2ZXJQYXJhbWV0ZXIpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU3RyaW5nTWV0aG9kKTsKLUpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk51bGxhYmxlU3RyaW5n
U3RhdGljTWV0aG9kKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmluZ1NwZWNpYWxNZXRob2QpOwotSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFbnVtQXJnKTsK
LUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoU3RhbmRhbG9uZUVudW1BcmcpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmcpOwotSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbEVudW1BcmdBbmREZWZhdWx0VmFsdWUpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRU
aHJvd3MpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhVU1ZTdHJpbmdBcmcpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOdWxsYWJsZVVTVlN0cmluZ0FyZyk7
Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aFVTVlN0cmluZ0FyZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpOwotSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhCeXRl
U3RyaW5nQXJnKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoTnVsbGFibGVCeXRlU3RyaW5nQXJnKTsKLUpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQnl0ZVN0cmlu
Z0FyZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblNlcmlhbGl6ZWRWYWx1ZSk7Ci1KU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFJlY29y
ZCk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aEV4Y2VwdGlvbik7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvblJldHVybmluZ0xvbmcpOwotSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhFeGNlcHRpb25SZXR1cm5pbmdPYmplY3QpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZCk7Ci1KU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kV2l0aEFyZ3Mp
OwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblBy
aXZhdGVNZXRob2QpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblB1YmxpY0FuZFByaXZhdGVNZXRob2QpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIpOwotSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblJlbW92ZUV2ZW50
TGlzdGVuZXIpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbldpdGhFeGVjU3RhdGVWb2lkKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlT2JqKTsKLUpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlVm9pZEV4
Y2VwdGlvbik7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uV2l0aEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbik7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
OwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlKTsKLUpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbik7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRF
eGVjU3RhdGVXaXRoU3BhY2VzKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25XaXRoRG9jdW1lbnRBcmd1bWVudCk7Ci1KU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aENhbGxlckRvY3VtZW50QXJn
dW1lbnQpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbldpdGhDYWxsZXJXaW5kb3dBcmd1bWVudCk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXJnKTsKLUpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
T3B0aW9uYWxBcmdBbmREZWZhdWx0VmFsdWUpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZE9wdGlv
bmFsQXJnKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3MpOwotSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbFN0cmluZyk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5nKTsKLUpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxB
dG9tU3RyaW5nKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdBbmREZWZhdWx0VmFsdWUpOwotSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbEF0b21TdHJpbmdBbmREZWZhdWx0VmFsdWUpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lz
TnVsbCk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNVbmRlZmluZWQpOwotSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0
b21TdHJpbmdJc051bGwpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzRW1wdHlTdHJpbmcpOwotSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbFVTVlN0cmluZ0lzRW1wdHlTdHJpbmcpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJp
bmdJc0VtcHR5U3RyaW5nKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxEb3VibGVJc05hTik7Ci1KU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlv
bmFsRmxvYXRJc05hTik7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTG9uZ0xvbmcpOwotSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbExv
bmdMb25nSXNaZXJvKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVbnNpZ25lZExvbmdMb25nKTsKLUpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxVbnNpZ25lZExvbmdMb25nSXNaZXJvKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZSk7Ci1K
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsU2VxdWVuY2VJc0VtcHR5KTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxCb29sZWFuKTsKLUpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoT3B0aW9uYWxCb29sZWFuSXNGYWxzZSk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQW55KTsKLUpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxPYmplY3QpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFdyYXBwZXIpOwotSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbE51bGxh
YmxlV3JhcHBlcik7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVySXNOdWxsKTsKLUpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
T3B0aW9uYWxYUGF0aE5TUmVzb2x2ZXIpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFJlY29yZCk7Ci1KU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsUHJvbWlzZSk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrSW50ZXJmYWNlQXJnKTsKLUpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTnVsbGFi
bGVDYWxsYmFja0ludGVyZmFjZUFyZyk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbkNhbGxiYWNrSW50ZXJmYWNlQXJnQW5k
Q2FsbGJhY2tJbnRlcmZhY2VBcmcpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbENhbGxiYWNrSW50ZXJmYWNlQXJn
KTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZUNhbGxiYWNrSW50ZXJmYWNlQXJnKTsKLUpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2Fs
bGJhY2tGdW5jdGlvbkFyZyk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE51bGxhYmxlQ2FsbGJhY2tGdW5jdGlvbkFyZyk7Ci1K
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE5vbkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tGdW5jdGlvbkFyZyk7Ci1KU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFs
Q2FsbGJhY2tGdW5jdGlvbkFyZyk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVDYWxsYmFja0Z1bmN0
aW9uQXJnKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JG
dW5jdGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKTsKLUpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblN0YXRpY01ldGhv
ZFdpdGhDYWxsYmFja0FyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX3VuZGVmaW5lZE1ldGhvZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3VuZGVmaW5lZE1ldGhvZFdpdGhBcmdzKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fYnl0
ZU1ldGhvZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uX2J5dGVNZXRob2RXaXRoQXJncyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX29jdGV0TWV0aG9kKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb2N0ZXRNZXRob2RXaXRoQXJncyk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2xv
bmdNZXRob2QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbl9sb25nTWV0aG9kV2l0aEFyZ3MpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vYmpNZXRob2QpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vYmpNZXRob2RXaXRoQXJncyk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakluc3RhbmNlRnVuY3Rpb25fdW5mb3Jn
ZWFibGVNZXRob2QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbl9tZXRob2RXaXRoQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdp
dGhYUGF0aE5TUmVzb2x2ZXJQYXJhbWV0ZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9udWxsYWJsZVN0cmluZ01ldGhvZCk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25fbnVsbGFibGVT
dHJpbmdTdGF0aWNNZXRob2QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl9udWxsYWJsZVN0cmluZ1NwZWNpYWxNZXRob2QpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoRW51
bUFyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uX21ldGhvZFdpdGhTdGFuZGFsb25lRW51bUFyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbEVudW1Bcmcp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9t
ZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnQW5kRGVmYXVsdFZhbHVlKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kVGhhdFJlcXVpcmVz
QWxsQXJnc0FuZFRocm93cyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhVU1ZTdHJpbmdBcmcpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoTnVsbGFibGVV
U1ZTdHJpbmdBcmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbl9tZXRob2RXaXRoVVNWU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmlu
Zyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X21ldGhvZFdpdGhCeXRlU3RyaW5nQXJnKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE51bGxhYmxlQnl0ZVN0cmluZ0FyZyk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21l
dGhvZFdpdGhCeXRlU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3NlcmlhbGl6ZWRW
YWx1ZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uX21ldGhvZFdpdGhSZWNvcmQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoRXhjZXB0aW9uKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aEV4Y2VwdGlv
blJldHVybmluZ0xvbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoRXhjZXB0aW9uUmV0dXJuaW5nT2JqZWN0KTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY3VzdG9tTWV0
aG9kKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25fY3VzdG9tTWV0aG9kV2l0aEFyZ3MpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbl9wcml2YXRlTWV0aG9kKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fcHVibGljQW5kUHJpdmF0ZU1ldGhv
ZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X2FkZEV2ZW50TGlzdGVuZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl9yZW1vdmVFdmVudExpc3RlbmVyKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aEV4ZWNTdGF0ZVZvaWQpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRo
RXhlY1N0YXRlT2JqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25fd2l0aEV4ZWNTdGF0ZVZvaWRFeGNlcHRpb24pOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoRXhlY1N0YXRlT2JqRXhj
ZXB0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25fd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEFuZEV4ZWNTdGF0ZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uX3dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlT2JqRXhj
ZXB0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25fd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0
aERvY3VtZW50QXJndW1lbnQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl93aXRoQ2FsbGVyRG9jdW1lbnRBcmd1bWVudCk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3dpdGhDYWxsZXJXaW5k
b3dBcmd1bWVudCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbEFyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbEFyZ0FuZERl
ZmF1bHRWYWx1ZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uX21ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0
aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5n
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25f
bWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZyk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21l
dGhvZFdpdGhPcHRpb25hbFN0cmluZ0FuZERlZmF1bHRWYWx1ZSk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbEF0
b21TdHJpbmdBbmREZWZhdWx0VmFsdWUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc051bGwpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRo
b2RXaXRoT3B0aW9uYWxTdHJpbmdJc1VuZGVmaW5lZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJp
bmdJc051bGwpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc0VtcHR5U3RyaW5nKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9w
dGlvbmFsVVNWU3RyaW5nSXNFbXB0eVN0cmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdJ
c0VtcHR5U3RyaW5nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsRG91YmxlSXNOYU4pOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9u
YWxGbG9hdElzTmFOKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsTG9uZ0xvbmcpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxM
b25nTG9uZ0lzWmVybyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbFVuc2lnbmVkTG9uZ0xvbmcpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRo
T3B0aW9uYWxVbnNpZ25lZExvbmdMb25nSXNaZXJvKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsU2VxdWVuY2Up
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9t
ZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZUlzRW1wdHkpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxCb29sZWFu
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25f
bWV0aG9kV2l0aE9wdGlvbmFsQm9vbGVhbklzRmFsc2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxBbnkpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRo
b2RXaXRoT3B0aW9uYWxPYmplY3QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxXcmFwcGVyKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9w
dGlvbmFsTnVsbGFibGVXcmFwcGVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVySXNO
dWxsKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25fbWV0aG9kV2l0aE9wdGlvbmFsWFBhdGhOU1Jlc29sdmVyKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsUmVj
b3JkKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25fbWV0aG9kV2l0aE9wdGlvbmFsUHJvbWlzZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhDYWxsYmFja0ludGVyZmFjZUFy
Zyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X21ldGhvZFdpdGhOdWxsYWJsZUNhbGxiYWNrSW50ZXJmYWNlQXJnKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE5vbkNhbGxi
YWNrSW50ZXJmYWNlQXJnQW5kQ2FsbGJhY2tJbnRlcmZhY2VBcmcpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxD
YWxsYmFja0ludGVyZmFjZUFyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlQ2FsbGJhY2tJbnRl
cmZhY2VBcmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbl9tZXRob2RXaXRoQ2FsbGJhY2tGdW5jdGlvbkFyZyk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhOdWxsYWJsZUNh
bGxiYWNrRnVuY3Rpb25BcmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0Z1bmN0
aW9uQXJnKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsQ2FsbGJhY2tGdW5jdGlvbkFyZyk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRp
b25hbE51bGxhYmxlQ2FsbGJhY2tGdW5jdGlvbkFyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25fc3RhdGljTWV0aG9kV2l0aENhbGxiYWNr
QW5kT3B0aW9uYWxBcmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25z
dHJ1Y3RvckZ1bmN0aW9uX3N0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FyZyk7CiAjaWYgRU5BQkxF
KENvbmRpdGlvbjEpCi1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QxKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY29uZGl0aW9uYWxNZXRob2QxKTsKICNlbmRpZgog
I2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUoQ29uZGl0aW9uMikKLUpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhv
ZDIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bl9jb25kaXRpb25hbE1ldGhvZDIpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8
IEVOQUJMRShDb25kaXRpb24yKQotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMyk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2NvbmRpdGlvbmFsTWV0aG9kMyk7CiAj
ZW5kaWYKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZGVkTWV0aG9kKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyKTsK
LUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVy
bG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNoaW5nVW5pb24pOwotSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoMkRp
c3Rpbmd1aXNoaW5nVW5pb25zKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE5vbkRpc3Rpbmd1aXNoaW5nVW5p
b24pOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk92ZXJsb2FkV2l0aE51bGxhYmxlVW5pb24pOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE9wdGlvbmFsVW5pb24pOwotSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2Fk
V2l0aE51bGxhYmxlTm9uRGlzdGluZ3Vpc2hpbmdQYXJhbWV0ZXIpOwotSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2QpOwotSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NN
ZXRob2RXaXRoT3B0aW9uYWwpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpD
b25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2QyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZCk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRN
ZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNo
aW5nVW5pb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbl9vdmVybG9hZGVkTWV0aG9kV2l0aDJEaXN0aW5ndWlzaGluZ1VuaW9ucyk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2Fk
ZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkV2l0aE51bGxhYmxlVW5p
b24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bl9vdmVybG9hZFdpdGhPcHRpb25hbFVuaW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRXaXRoTnVsbGFibGVOb25EaXN0aW5n
dWlzaGluZ1BhcmFtZXRlcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNv
bnN0cnVjdG9yRnVuY3Rpb25fY2xhc3NNZXRob2QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uX2NsYXNzTWV0aG9kV2l0aE9wdGlvbmFsKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbl9j
bGFzc01ldGhvZDIpOwogI2lmIEVOQUJMRShDb25kaXRpb24xKQotSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uX292
ZXJsb2FkZWRNZXRob2QxKTsKICNlbmRpZgotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wKTsKLUpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhD
bGFtcE9uT3B0aW9uYWwpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZSk7Ci1KU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoRW5m
b3JjZVJhbmdlT25PcHRpb25hbCk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlKTsKLUpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJh
eUZ1bmN0aW9uKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25Eb21TdHJpbmdMaXN0RnVuY3Rpb24pOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9wZXJhdGlvbldpdGhPcHRpb25hbFVuaW9uUGFy
YW1ldGVyKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoQW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2UpOwotSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRCeUlkKTsK
LUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRT
VkdEb2N1bWVudCk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ29udmVydDEpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkNvbnZlcnQyKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0Myk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDQpOwotSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk11dGFibGVQb2ludEZ1bmN0aW9u
KTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
cmFuZ2UpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblZhcmlhZGljU3RyaW5nTWV0aG9kKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY0RvdWJsZU1ldGhvZCk7Ci1KU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNOb2RlTWV0
aG9kKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25WYXJpYWRpY1VuaW9uTWV0aG9kKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25BbnkpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb24pOwotSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rp
b25XaXRoRmxvYXRBcmd1bWVudCk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhFeGNlcHRpb24pOwotSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9t
aXNlRnVuY3Rpb25XaXRoT3B0aW9uYWxJbnRBcmd1bWVudCk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VPdmVybG9hZGVkRnVu
Y3Rpb24pOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1
bmN0aW9uVGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbik7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGljUHJvbWlzZUZ1bmN0aW9u
V2l0aEV4Y2VwdGlvbik7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uVGVzdEN1c3RvbVByb21pc2VGdW5jdGlvbik7Ci1KU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGljQ3VzdG9tUHJv
bWlzZUZ1bmN0aW9uKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25UZXN0Q3VzdG9tUmV0dXJuc093blByb21pc2VGdW5jdGlvbik7Ci1KU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFJldHVybnNP
d25Qcm9taXNlQW5kUHJvbWlzZVByb3h5RnVuY3Rpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jbGFzc01ldGhvZFdpdGhDbGFtcCk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2NsYXNz
TWV0aG9kV2l0aENsYW1wT25PcHRpb25hbCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2NsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZSk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2NsYXNz
TWV0aG9kV2l0aEVuZm9yY2VSYW5nZU9uT3B0aW9uYWwpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoVW5zaWduZWRMb25nU2Vx
dWVuY2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbl9zdHJpbmdBcnJheUZ1bmN0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fZG9tU3RyaW5nTGlzdEZ1bmN0aW9uKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3BlcmF0aW9uV2l0
aE9wdGlvbmFsVW5pb25QYXJhbWV0ZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoQW5kV2l0aG91dE51bGxhYmxlU2VxdWVu
Y2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bl9nZXRFbGVtZW50QnlJZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX2dldFNWR0RvY3VtZW50KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY29udmVydDEpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jb252ZXJ0Mik7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2NvbnZlcnQzKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY29u
dmVydDQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbl9tdXRhYmxlUG9pbnRGdW5jdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX29yYW5nZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3ZhcmlhZGljU3RyaW5nTWV0aG9kKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fdmFyaWFk
aWNEb3VibGVNZXRob2QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbl92YXJpYWRpY05vZGVNZXRob2QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl92YXJpYWRpY1VuaW9uTWV0aG9kKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fYW55KTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fdGVz
dFByb21pc2VGdW5jdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX3Rlc3RQcm9taXNlRnVuY3Rpb25XaXRoRmxvYXRBcmd1bWVudCk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RQ
cm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fdGVzdFByb21pc2VGdW5jdGlvbldpdGhPcHRpb25h
bEludEFyZ3VtZW50KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25fdGVzdFByb21pc2VPdmVybG9hZGVkRnVuY3Rpb24pOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uX3Rlc3RTdGF0aWNQcm9t
aXNlRnVuY3Rpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1
Y3RvckZ1bmN0aW9uX3Rlc3RTdGF0aWNQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fdGVzdEN1
c3RvbVByb21pc2VGdW5jdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
akNvbnN0cnVjdG9yRnVuY3Rpb25fdGVzdFN0YXRpY0N1c3RvbVByb21pc2VGdW5jdGlvbik7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RD
dXN0b21SZXR1cm5zT3duUHJvbWlzZUZ1bmN0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fdGVzdFJldHVybnNPd25Qcm9taXNlQW5kUHJv
bWlzZVByb3h5RnVuY3Rpb24pOwogI2lmIEVOQUJMRShDT05ESVRJT04xKSB8fCBFTkFCTEUoQ09O
RElUSU9OMikKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Db25kaXRpb25hbE92ZXJsb2FkKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY29uZGl0aW9uYWxPdmVybG9hZCk7CiAjZW5kaWYKLUpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TaW5nbGVD
b25kaXRpb25hbE92ZXJsb2FkKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25BdHRhY2hTaGFkb3dSb290KTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcGVyYXRpb25XaXRoRXh0ZXJuYWxEaWN0
aW9uYXJ5UGFyYW1ldGVyKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25CdWZmZXJTb3VyY2VQYXJhbWV0ZXIpOwotSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxlZ2FjeUNhbGxlck5hbWVkKTsKLUpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0
dXJuVmFsdWVPcHRpbWl6YXRpb24pOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblRlc3RSZXR1cm5WYWx1ZU9wdGltaXphdGlvbldpdGhFeGNlcHRp
b24pOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dGdW5jdGlvbik7Ci1KU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRU
b1dvcmtlckZ1bmN0aW9uKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Db25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyRnVuY3Rp
b24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bl9zaW5nbGVDb25kaXRpb25hbE92ZXJsb2FkKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fYXR0YWNoU2hhZG93Um9vdCk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX29wZXJhdGlvbldpdGhF
eHRlcm5hbERpY3Rpb25hcnlQYXJhbWV0ZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9idWZmZXJTb3VyY2VQYXJhbWV0ZXIpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9sZWdhY3lDYWxs
ZXJOYW1lZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uX3Rlc3RSZXR1cm5WYWx1ZU9wdGltaXphdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RSZXR1cm5WYWx1ZU9wdGltaXph
dGlvbldpdGhFeGNlcHRpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl9jb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93RnVuY3Rpb24pOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jb25k
aXRpb25hbGx5RXhwb3NlZFRvV29ya2VyRnVuY3Rpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jb25kaXRpb25hbGx5RXhwb3NlZFRvV2lu
ZG93QW5kV29ya2VyRnVuY3Rpb24pOwogSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9kYXNoX2xlYWRpbmdfZGFzaF9oeXBoZW5fZGFzaF9mdW5jdGlv
bik7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
VHJhaWxpbmdfZGFzaF9oeXBoZW5fZGFzaF9mdW5jdGlvbl9kYXNoXyk7Ci1KU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTGVhZGluZ191bmRlcnNjb3Jl
X2Z1bmN0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25fdHJhaWxpbmdfZGFzaF9oeXBoZW5fZGFzaF9mdW5jdGlvbl9kYXNoXyk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2xlYWRpbmdf
dW5kZXJzY29yZV9mdW5jdGlvbik7CiBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uX2RvdWJsZV9sZWFkaW5nX3VuZGVyc2NvcmVfZnVuY3Rpb24pOwot
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRyYWls
aW5nX3VuZGVyc2NvcmVfZnVuY3Rpb25fKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3RyYWlsaW5nX3VuZGVyc2NvcmVfZnVuY3Rp
b25fKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25fdG9TdHJpbmcpOwogCiAvLyBBdHRyaWJ1dGVzCiAKIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0T2JqQ29uc3RydWN0b3IpOwogSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RPYmpDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9i
alJlYWRPbmx5TG9uZ0F0dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpS
ZWFkT25seVN0cmluZ0F0dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpS
ZWFkT25seVRlc3RPYmpBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2Jq
Q29uc3RydWN0b3JTdGF0aWNSZWFkT25seUxvbmdBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKTsKLUpTQ19ERUNMQVJF
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKTsK
LUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3ViT2Jq
KTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3Rh
dGljUmVhZG9ubHlPYmopOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpFbnVt
QXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakVudW1BdHRyKTsK
LUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQnl0ZUF0dHIpOwotSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpCeXRlQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdE9iak9jdGV0QXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE9iak9jdGV0QXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dE9ialNob3J0QXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialNo
b3J0QXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNsYW1wZWRTaG9y
dEF0dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDbGFtcGVkU2hv
cnRBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqRW5mb3JjZVJhbmdl
U2hvcnRBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqRW5mb3Jj
ZVJhbmdlU2hvcnRBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqVW5z
aWduZWRTaG9ydEF0dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpV
bnNpZ25lZFNob3J0QXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakxv
bmdBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqTG9uZ0F0dHIp
OwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpMb25nTG9uZ0F0dHIpOwotSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0dHIpOwotSlNDX0RF
Q0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0cik7Ci1KU0Nf
REVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyKTsK
LUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqU3RyaW5nQXR0cik7Ci1KU0NfREVD
TEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialN0cmluZ0F0dHIpOwotSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpVc3ZzdHJpbmdBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0T2JqVXN2c3RyaW5nQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKGpzVGVzdE9ialRlc3RPYmpBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0T2JqVGVzdE9iakF0dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RPYmpUZXN0TnVsbGFibGVPYmpBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdE9ialVuZm9yZ2VhYmxlQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdE9ialN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKTsKLUpTQ19ERUNM
QVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1w
dHlTdHJpbmcpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpVc3ZzdHJpbmdB
dHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyk7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE9ialVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKTsKLUpT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051
bGxBc0VtcHR5U3RyaW5nKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2Jq
Qnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKTsKLUpTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0T2JqU3RyaW5nTG9uZ1JlY29yZEF0dHIpOwotSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpTdHJpbmdMb25nUmVjb3JkQXR0cik7Ci1KU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKTsKLUpT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0
dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVj
b3JkQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialVzdnN0cmlu
Z0xvbmdSZWNvcmRBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqU3Ry
aW5nT2JqUmVjb3JkQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9i
alN0cmluZ09ialJlY29yZEF0dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RP
YmpTdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHIpOwotSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpTdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyKTsKLUpT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVj
b3JkQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakRpY3Rpb25hcnlB
dHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqRGljdGlvbmFyeUF0
dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpOdWxsYWJsZURpY3Rpb25h
cnlBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqTnVsbGFibGVE
aWN0aW9uYXJ5QXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakFubm90
YXRlZFR5cGVJblVuaW9uQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dE9iakFubm90YXRlZFR5cGVJblVuaW9uQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0cik7Ci1KU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakltcGxlbWVudGF0aW9uRW51bUF0dHIpOwot
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpJbXBsZW1lbnRhdGlvbkVudW1B
dHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqTWVkaWFEZXZpY2VzKTsK
LUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqWE1MT2JqQXR0cik7Ci1KU0NfREVD
TEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialhNTE9iakF0dHIpOwotSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDcmVhdGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RPYmpDcmVhdGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RP
YmpSZWZsZWN0ZWRTdHJpbmdBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdE9ialJlZmxlY3RlZFVTVlN0cmluZ0F0dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKTsKLUpTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKTsKLUpTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIp
OwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25l
ZEludGVncmFsQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialJlZmxl
Y3RlZEJvb2xlYW5BdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2Jq
UmVmbGVjdGVkQm9vbGVhbkF0dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RP
YmpSZWZsZWN0ZWRVUkxBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
T2JqUmVmbGVjdGVkVVJMQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9i
alJlZmxlY3RlZFVTVlVSTEF0dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RPYmpSZWZsZWN0ZWRVU1ZVUkxBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIpOwotSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIpOwotSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0
cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3Rv
bUJvb2xlYW5BdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqUmVmbGVj
dGVkQ3VzdG9tVVJMQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9i
alJlZmxlY3RlZEN1c3RvbVVSTEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RPYmpfcmVhZE9ubHlMb25nQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVz
dE9ial9yZWFkT25seVN0cmluZ0F0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RPYmpfcmVhZE9ubHlUZXN0T2JqQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdE9iakNvbnN0cnVjdG9yX3N0YXRpY1JlYWRPbmx5TG9uZ0F0dHIpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDb25zdHJ1Y3Rvcl9zdGF0aWNTdHJpbmdBdHRyKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQ29uc3RydWN0b3Jfc3RhdGljU3Ry
aW5nQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbnN0cnVjdG9y
X1Rlc3RTdWJPYmopOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDb25zdHJ1
Y3Rvcl90ZXN0U3RhdGljUmVhZG9ubHlPYmopOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RPYmpfZW51bUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RP
YmpfZW51bUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfYnl0ZUF0
dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfYnl0ZUF0dHIpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfb2N0ZXRBdHRyKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX29jdGV0QXR0cik7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdE9ial9zaG9ydEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RPYmpfc2hvcnRBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0T2JqX2NsYW1wZWRTaG9ydEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RPYmpfY2xhbXBlZFNob3J0QXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdE9ial9lbmZvcmNlUmFuZ2VTaG9ydEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RPYmpfZW5mb3JjZVJhbmdlU2hvcnRBdHRyKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0T2JqX3Vuc2lnbmVkU2hvcnRBdHRyKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3Vuc2lnbmVkU2hvcnRBdHRyKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX2xvbmdBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0T2JqX2xvbmdBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0T2JqX2xvbmdMb25nQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdE9ial9sb25nTG9uZ0F0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RP
YmpfdW5zaWduZWRMb25nTG9uZ0F0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RPYmpfdW5zaWduZWRMb25nTG9uZ0F0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RPYmpfc3RyaW5nQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdE9ial9zdHJpbmdBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2Jq
X3VzdnN0cmluZ0F0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpf
dXN2c3RyaW5nQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial90ZXN0
T2JqQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial90ZXN0T2Jq
QXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial90ZXN0TnVsbGFibGVP
YmpBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3Rlc3ROdWxs
YWJsZU9iakF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfbGVuaWVu
dFRlc3RPYmpBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX2xl
bmllbnRUZXN0T2JqQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial91
bmZvcmdlYWJsZUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfc3Ry
aW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RPYmpfc3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfdXN2c3RyaW5nQXR0clRyZWF0aW5n
TnVsbEFzRW1wdHlTdHJpbmcpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RP
YmpfdXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfYnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5
U3RyaW5nKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX2J5dGVTdHJp
bmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdE9ial9zdHJpbmdMb25nUmVjb3JkQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdE9ial9zdHJpbmdMb25nUmVjb3JkQXR0cik7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdE9ial91c3ZzdHJpbmdMb25nUmVjb3JkQXR0cik7CitKU0NfREVD
TEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial91c3ZzdHJpbmdMb25nUmVjb3JkQXR0cik7
CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial91c3ZzdHJpbmdMb25nUmVjb3Jk
QXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial91c3ZzdHJpbmdM
b25nUmVjb3JkQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9zdHJp
bmdPYmpSZWNvcmRBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2Jq
X3N0cmluZ09ialJlY29yZEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RP
Ympfc3RyaW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0T2JqX3N0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0cik7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9zdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3N0cmluZ1ZvaWRDYWxsYmFj
a1JlY29yZEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfZGljdGlv
bmFyeUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfZGljdGlv
bmFyeUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfbnVsbGFibGVE
aWN0aW9uYXJ5QXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9u
dWxsYWJsZURpY3Rpb25hcnlBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0
T2JqX2Fubm90YXRlZFR5cGVJblVuaW9uQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE9ial9hbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHIpOworSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RPYmpfYW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX2Fubm90YXRlZFR5cGVJblNlcXVlbmNl
QXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9pbXBsZW1lbnRhdGlv
bkVudW1BdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX2ltcGxl
bWVudGF0aW9uRW51bUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpf
bWVkaWFEZXZpY2VzKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX1hNTE9i
akF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfWE1MT2JqQXR0
cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9jcmVhdGUpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfY3JlYXRlKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0T2JqX3JlZmxlY3RlZFN0cmluZ0F0dHIpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfcmVmbGVjdGVkU3RyaW5nQXR0cik7CitKU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9yZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3JlZmxlY3RlZFVTVlN0cmluZ0F0
dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfcmVmbGVjdGVkSW50ZWdy
YWxBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3JlZmxlY3Rl
ZEludGVncmFsQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9yZWZs
ZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdE9ial9yZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0cik7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdE9ial9yZWZsZWN0ZWRCb29sZWFuQXR0cik7CitKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9yZWZsZWN0ZWRCb29sZWFuQXR0cik7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9yZWZsZWN0ZWRVUkxBdHRyKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3JlZmxlY3RlZFVSTEF0dHIpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfcmVmbGVjdGVkVVNWVVJMQXR0cik7CitK
U0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9yZWZsZWN0ZWRVU1ZVUkxBdHRy
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX3JlZmxlY3RlZFN0cmluZ0F0
dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfcmVmbGVjdGVkU3Ry
aW5nQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9yZWZsZWN0ZWRD
dXN0b21JbnRlZ3JhbEF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RP
YmpfcmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0T2JqX3JlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3JlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX3JlZmxlY3RlZEN1c3RvbVVSTEF0dHIp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfcmVmbGVjdGVkQ3VzdG9t
VVJMQXR0cik7CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLUpTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0
ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9lbmFibGVkQXRSdW50
aW1lQXR0cmlidXRlKTsKICNlbmRpZgogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1KU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0
dHJpYnV0ZVN0YXRpYyk7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakNv
bnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYyk7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbnN0cnVjdG9yX2VuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1
dGVTdGF0aWMpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25zdHJ1
Y3Rvcl9lbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGljKTsKICNlbmRpZgotSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpUeXBlZEFycmF5QXR0cik7Ci1KU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialR5cGVkQXJyYXlBdHRyKTsKLUpTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0T2JqQ3VzdG9tQXR0cik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdE9iakN1c3RvbUF0dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RPYmpPbmZvbyk7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iak9u
Zm9vKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqT253ZWJraXRmb28pOwot
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpPbndlYmtpdGZvbyk7Ci1KU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGUpOwot
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpXaXRoRXhlY1N0YXRlQXR0cmli
dXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqV2l0aENhbGxXaXRoQW5k
U2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSk7Ci1KU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0
cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqV2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZSk7
Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3Bh
Y2VzQXR0cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqV2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX3R5cGVkQXJyYXlBdHRyKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3R5cGVkQXJyYXlBdHRyKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX2N1c3RvbUF0dHIpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfY3VzdG9tQXR0cik7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdE9ial9vbmZvbyk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE9ial9vbmZvbyk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9i
al9vbndlYmtpdGZvbyk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9v
bndlYmtpdGZvbyk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial93aXRoRXhl
Y1N0YXRlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2Jq
X3dpdGhFeGVjU3RhdGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RPYmpfd2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfd2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdp
dGhBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfd2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RPYmpfd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RPYmpfd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfd2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhl
Y1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSk7CiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCi1KU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEpOwotSlNDX0RF
Q0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjEpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfY29uZGl0aW9uYWxBdHRyMSk7CiAjZW5k
aWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIpCi1KU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIpOwotSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKTsKK0pTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjIpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfY29uZGl0aW9uYWxBdHRyMik7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCi1KU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMpOwotSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjMpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfY29uZGl0aW9uYWxBdHRyMyk7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoQ29uZGl0aW9uMSkKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2Jq
Q29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3Rvcik7CitKU0Nf
REVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9jb25kaXRpb25hbEF0dHI0Q29uc3Ry
dWN0b3IpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRp
b24yKQotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1
Q29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25k
aXRpb25hbEF0dHI1Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RPYmpfY29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3Rvcik7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCi1KU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3Rvcik7Ci1K
U0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25z
dHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9jb25kaXRpb25h
bEF0dHI2Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RP
YmpfY29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKTsKICNlbmRpZgotSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxKTsKLUpTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMik7CitKU0NfREVDTEFSRV9DVVNUT01f
R0VUVEVSKGpzVGVzdE9ial9jYWNoZWRBdHRyaWJ1dGUxKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0T2JqX2NhY2hlZEF0dHJpYnV0ZTIpOwogI2lmIEVOQUJMRShDT05ESVRJT04p
Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTMpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfY2FjaGVkQXR0cmlidXRlMyk7CiAj
ZW5kaWYKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQW55QXR0cmlidXRlKTsK
LUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQW55QXR0cmlidXRlKTsKLUpT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqT2JqZWN0QXR0cmlidXRlKTsKLUpTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqT2JqZWN0QXR0cmlidXRlKTsKLUpTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ29udGVudERvY3VtZW50KTsKLUpTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqTXV0YWJsZVBvaW50KTsKLUpTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqTXV0YWJsZVBvaW50KTsKLUpTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0T2JqU3RyYXdiZXJyeSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE9ialN0cmF3YmVycnkpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RPYmpEZXNjcmlwdGlvbik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iaklk
KTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqSWQpOwotSlNDX0RFQ0xB
UkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpIYXNoKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzVGVzdE9iak51bGxhYmxlRG91YmxlQXR0cmlidXRlKTsKLUpTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNUZXN0T2JqTnVsbGFibGVMb25nQXR0cmlidXRlKTsKLUpTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqTnVsbGFibGVCb29sZWFuQXR0cmlidXRlKTsKLUpT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqTnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUp
OwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJs
ZUF0dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iak51bGxh
YmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUpOwot
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmluZ1NldHRh
YmxlQXR0cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqTnVs
bGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdE9iak51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKTsKLUpTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5nU2V0dGFi
bGVBdHRyaWJ1dGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpBdHRyaWJ1
dGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVz
ZXJ2ZWRFbnVtVHlwZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakF0
dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0T2JqVGVzdFJlYWRPbmx5Vm9pZFByb21pc2VBdHRyaWJ1dGUpOwotSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpUZXN0UmVhZE9ubHlQcm9taXNlQXR0cmlidXRlKTsKLUpT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGUpOwot
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0
ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialB1dEZvcndhcmRzTnVsbGFi
bGVBdHRyaWJ1dGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpQdXRG
b3J3YXJkc051bGxhYmxlQXR0cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RPYmpTdHJpbmdpZmllckF0dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUpOwotSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRv
V2luZG93QXR0cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ29u
ZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGUp
OwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3Nl
ZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0
ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9hbnlBdHRyaWJ1dGUpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfYW55QXR0cmlidXRlKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX29iamVjdEF0dHJpYnV0ZSk7CitKU0Nf
REVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9vYmplY3RBdHRyaWJ1dGUpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfY29udGVudERvY3VtZW50KTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX211dGFibGVQb2ludCk7CitKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9tdXRhYmxlUG9pbnQpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfc3RyYXdiZXJyeSk7CitKU0NfREVDTEFSRV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdE9ial9zdHJhd2JlcnJ5KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRU
RVIoanNUZXN0T2JqX2Rlc2NyaXB0aW9uKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0T2JqX2lkKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX2lkKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX2hhc2gpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfcmVwbGFjZWFibGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfcmVwbGFjZWFibGVBdHRyaWJ1dGUpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfbnVsbGFibGVEb3VibGVBdHRyaWJ1dGUp
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfbnVsbGFibGVMb25nQXR0cmli
dXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX251bGxhYmxlQm9vbGVh
bkF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9udWxsYWJs
ZVN0cmluZ0F0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9u
dWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE9ial9udWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9udWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0cmlidXRl
KTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX251bGxhYmxlU3RyaW5n
U2V0dGFibGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpf
bnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdE9ial9udWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX251bGxhYmxlQnl0ZVN0cmluZ1Nl
dHRhYmxlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2Jq
X251bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0T2JqX2F0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdE9ial9hdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZSk7CitKU0NfREVDTEFSRV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9hdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZSk7
CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial90ZXN0UmVhZE9ubHlWb2lkUHJv
bWlzZUF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial90ZXN0
UmVhZE9ubHlQcm9taXNlQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0T2JqX3B1dEZvcndhcmRzQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0T2JqX3B1dEZvcndhcmRzQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0T2JqX3B1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUpOworSlNDX0RFQ0xB
UkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfcHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0
ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9zdHJpbmdpZmllckF0dHJp
YnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9zdHJpbmdpZmll
ckF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9jb25kaXRp
b25hbGx5RXhwb3NlZFRvV2luZG93QXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0T2JqX2NvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfY29uZGl0aW9uYWxseUV4cG9zZWRU
b1dvcmtlckF0dHJpYnV0ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9i
al9jb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0T2JqX2NvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3Jr
ZXJBdHRyaWJ1dGUpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfY29u
ZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZSk7CiBKU0NfREVDTEFS
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9kYXNoX2xlYWRpbmdfZGFzaF9oeXBoZW5fZGFzaF9h
dHRyaWJ1dGUpOwogSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfZGFzaF9s
ZWFkaW5nX2Rhc2hfaHlwaGVuX2Rhc2hfYXR0cmlidXRlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0T2JqVHJhaWxpbmdfZGFzaF9oeXBoZW5fZGFzaF9hdHRyaWJ1dGVfZGFzaF8p
OwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpUcmFpbGluZ19kYXNoX2h5
cGhlbl9kYXNoX2F0dHJpYnV0ZV9kYXNoXyk7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpz
VGVzdE9iakxlYWRpbmdfdW5kZXJzY29yZV9hdHRyaWJ1dGUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RPYmpMZWFkaW5nX3VuZGVyc2NvcmVfYXR0cmlidXRlKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX3RyYWlsaW5nX2Rhc2hfaHlwaGVuX2Rhc2hf
YXR0cmlidXRlX2Rhc2hfKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2Jq
X3RyYWlsaW5nX2Rhc2hfaHlwaGVuX2Rhc2hfYXR0cmlidXRlX2Rhc2hfKTsKK0pTQ19ERUNMQVJF
X0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX2xlYWRpbmdfdW5kZXJzY29yZV9hdHRyaWJ1dGUpOwor
SlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfbGVhZGluZ191bmRlcnNjb3Jl
X2F0dHJpYnV0ZSk7CiBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9kb3VibGVf
bGVhZGluZ191bmRlcnNjb3JlX2F0dHJpYnV0ZSk7CiBKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE9ial9kb3VibGVfbGVhZGluZ191bmRlcnNjb3JlX2F0dHJpYnV0ZSk7Ci1KU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialRyYWlsaW5nX3VuZGVyc2NvcmVfYXR0cmli
dXRlXyk7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialRyYWlsaW5nX3Vu
ZGVyc2NvcmVfYXR0cmlidXRlXyk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdE9i
al90cmFpbGluZ191bmRlcnNjb3JlX2F0dHJpYnV0ZV8pOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RPYmpfdHJhaWxpbmdfdW5kZXJzY29yZV9hdHRyaWJ1dGVfKTsKIAogY2xh
c3MgSlNUZXN0T2JqUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVj
dCB7CiBwdWJsaWM6CkBAIC0xODcwLDIzICsxODcwLDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg
Q29tcGFjdEhhc2hJbmRleCBKU1QKIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVz
dE9ialRhYmxlVmFsdWVzW10gPQogewotICAgIHsgInVuZm9yZ2VhYmxlQXR0ciIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0
b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0T2JqVW5mb3JnZWFibGVBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgInVuZm9yZ2VhYmxlQXR0
ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVs
ZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJp
YnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3VuZm9yZ2VhYmxlQXR0ciksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKICNpZiBFTkFC
TEUoQ29uZGl0aW9uMSkKLSAgICB7ICJjb25kaXRpb25hbEF0dHI0Iiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RP
YmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0
Q29uc3RydWN0b3IpIH0gfSwKKyAgICB7ICJjb25kaXRpb25hbEF0dHI0Iiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RPYmpfY29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX2NvbmRpdGlvbmFs
QXR0cjRDb25zdHJ1Y3RvcikgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7
IDAsIDAgfSB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25k
aXRpb24yKQotICAgIHsgImNvbmRpdGlvbmFsQXR0cjUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNvbmRp
dGlvbmFsQXR0cjVDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1
Y3RvcikgfSB9LAorICAgIHsgImNvbmRpdGlvbmFsQXR0cjUiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9j
b25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfY29uZGl0aW9uYWxBdHRyNUNv
bnN0cnVjdG9yKSB9IH0sCiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9
IH0sCiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIp
Ci0gICAgeyAiY29uZGl0aW9uYWxBdHRyNiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyNkNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKSB9
IH0sCisgICAgeyAiY29uZGl0aW9uYWxBdHRyNiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX2NvbmRpdGlv
bmFsQXR0cjZDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9jb25kaXRpb25hbEF0dHI2Q29uc3RydWN0
b3IpIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNl
bmRpZgotICAgIHsgInVuZm9yZ2VhYmxlTWV0aG9kIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpJ
bnN0YW5jZUZ1bmN0aW9uVW5mb3JnZWFibGVNZXRob2QpLCAoaW50cHRyX3QpICgwKSB9IH0sCisg
ICAgeyAidW5mb3JnZWFibGVNZXRob2QiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9iakluc3RhbmNl
RnVuY3Rpb25fdW5mb3JnZWFibGVNZXRob2QpLCAoaW50cHRyX3QpICgwKSB9IH0sCiB9OwogCiBz
dGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdE9ialRhYmxlID0geyA1LCAxNSwgdHJ1ZSwgSlNU
ZXN0T2JqOjppbmZvKCksIEpTVGVzdE9ialRhYmxlVmFsdWVzLCBKU1Rlc3RPYmpUYWJsZUluZGV4
IH07CkBAIC0xOTExLDM0ICsxOTExLDM0IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBK
U1Rlc3RPYmpDb24KICAgICB7ICJDT05TVF9WQUxVRV8xNCIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcg
bG9uZykoMHgxYWJjKSB9IH0sCiAgICAgeyAiQ09OU1RfSkFWQVNDUklQVCIsIEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25s
eSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMs
IHsgKGxvbmcgbG9uZykoMTUpIH0gfSwKICAgICB7ICJyZWFkb25seSIsIEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsg
KGxvbmcgbG9uZykoMCkgfSB9LAotICAgIHsgInN0YXRpY1JlYWRPbmx5TG9uZ0F0dHIiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljUmVhZE9ubHlMb25nQXR0ciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKLSAg
ICB7ICJzdGF0aWNTdHJpbmdBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KDApLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0ciksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iakNvbnN0cnVj
dG9yU3RhdGljU3RyaW5nQXR0cikgfSB9LAotICAgIHsgIlRlc3RTdWJPYmoiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdE9iakNvbnN0cnVjdG9yVGVzdFN1Yk9iaiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKLSAgICB7ICJ0ZXN0U3RhdGljUmVh
ZG9ubHlPYmoiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
UmVhZE9ubHkpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN0YXRpY1JlYWRvbmx5
T2JqKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oMCkgfSB9LAorICAgIHsgInN0YXRpY1JlYWRPbmx5TG9uZ0F0dHIiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9iakNvbnN0cnVjdG9yX3N0YXRpY1JlYWRPbmx5TG9uZ0F0dHIpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAic3Rh
dGljU3RyaW5nQXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPigwKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RP
YmpDb25zdHJ1Y3Rvcl9zdGF0aWNTdHJpbmdBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqQ29uc3RydWN0b3Jfc3Rh
dGljU3RyaW5nQXR0cikgfSB9LAorICAgIHsgIlRlc3RTdWJPYmoiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
akNvbnN0cnVjdG9yX1Rlc3RTdWJPYmopLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAidGVzdFN0YXRpY1JlYWRvbmx5
T2JqIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDb25zdHJ1Y3Rvcl90ZXN0U3RhdGljUmVhZG9ubHlPYmop
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigw
KSB9IH0sCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLSAgICB7ICJlbmFibGVkQXRSdW50aW1l
QXR0cmlidXRlU3RhdGljIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KDApLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9iakNvbnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYyksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9i
akNvbnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYykgfSB9LAorICAgIHsg
ImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
MCksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0T2JqQ29uc3RydWN0b3JfZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0
ZVN0YXRpYyksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdE9iakNvbnN0cnVjdG9yX2VuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVT
dGF0aWMpIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwK
ICNlbmRpZgogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi0gICAgeyAiZW5hYmxlZEF0UnVudGlt
ZU9wZXJhdGlvblN0YXRpYyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxS
YXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkVuYWJsZWRBdFJ1
bnRpbWVPcGVyYXRpb25TdGF0aWMpLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAiZW5hYmxl
ZEF0UnVudGltZU9wZXJhdGlvblN0YXRpYyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbl9l
bmFibGVkQXRSdW50aW1lT3BlcmF0aW9uU3RhdGljKSwgKGludHB0cl90KSAoMSkgfSB9LAogI2Vs
c2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCi0gICAgeyAi
bnVsbGFibGVTdHJpbmdTdGF0aWNNZXRob2QiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25O
dWxsYWJsZVN0cmluZ1N0YXRpY01ldGhvZCksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJz
dGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqQ29uc3RydWN0
b3JGdW5jdGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKSwgKGludHB0
cl90KSAoMCkgfSB9LAotICAgIHsgInN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FyZyIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0
T2JqQ29uc3RydWN0b3JGdW5jdGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FyZyksIChpbnRw
dHJfdCkgKDEpIH0gfSwKLSAgICB7ICJjbGFzc01ldGhvZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqQ29uc3RydWN0b3JG
dW5jdGlvbkNsYXNzTWV0aG9kKSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgImNsYXNzTWV0
aG9kV2l0aE9wdGlvbmFsIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJh
d05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2RX
aXRoT3B0aW9uYWwpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAiY2xhc3NNZXRob2QyIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2QyKSwgKGludHB0cl90KSAoMSkg
fSB9LAorICAgIHsgIm51bGxhYmxlU3RyaW5nU3RhdGljTWV0aG9kIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpDb25zdHJ1
Y3RvckZ1bmN0aW9uX251bGxhYmxlU3RyaW5nU3RhdGljTWV0aG9kKSwgKGludHB0cl90KSAoMCkg
fSB9LAorICAgIHsgInN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uX3N0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlv
bmFsQXJnKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgInN0YXRpY01ldGhvZFdpdGhDYWxs
YmFja0FyZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpG
dW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVG
dW5jdGlvbj4oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbl9zdGF0aWNNZXRob2RXaXRoQ2Fs
bGJhY2tBcmcpLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAiY2xhc3NNZXRob2QiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9iakNvbnN0cnVjdG9yRnVuY3Rpb25fY2xhc3NNZXRob2QpLCAoaW50cHRyX3QpICgwKSB9IH0s
CisgICAgeyAiY2xhc3NNZXRob2RXaXRoT3B0aW9uYWwiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9iakNvbnN0cnVjdG9yRnVu
Y3Rpb25fY2xhc3NNZXRob2RXaXRoT3B0aW9uYWwpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAg
eyAiY2xhc3NNZXRob2QyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJh
d05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uX2NsYXNzTWV0aG9k
MiksIChpbnRwdHJfdCkgKDEpIH0gfSwKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKLSAgICB7ICJv
dmVybG9hZGVkTWV0aG9kMSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxS
YXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2QxKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgIm92ZXJsb2FkZWRNZXRob2QxIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2QxKSwgKGludHB0cl90
KSAoMSkgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAog
I2VuZGlmCi0gICAgeyAidGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbiIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqQ29uc3Ry
dWN0b3JGdW5jdGlvblRlc3RTdGF0aWNQcm9taXNlRnVuY3Rpb24pLCAoaW50cHRyX3QpICgwKSB9
IH0sCi0gICAgeyAidGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbldpdGhFeGNlcHRpb24iLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGljUHJvbWlzZUZ1bmN0aW9uV2l0aEV4Y2Vw
dGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJ0ZXN0U3RhdGljQ3VzdG9tUHJvbWlz
ZUZ1bmN0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY0N1c3RvbVBy
b21pc2VGdW5jdGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJ0ZXN0U3RhdGljUHJv
bWlzZUZ1bmN0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uX3Rlc3RTdGF0aWNQcm9t
aXNlRnVuY3Rpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAidGVzdFN0YXRpY1Byb21p
c2VGdW5jdGlvbldpdGhFeGNlcHRpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25fdGVz
dFN0YXRpY1Byb21pc2VGdW5jdGlvbldpdGhFeGNlcHRpb24pLCAoaW50cHRyX3QpICgwKSB9IH0s
CisgICAgeyAidGVzdFN0YXRpY0N1c3RvbVByb21pc2VGdW5jdGlvbiIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqQ29uc3Ry
dWN0b3JGdW5jdGlvbl90ZXN0U3RhdGljQ3VzdG9tUHJvbWlzZUZ1bmN0aW9uKSwgKGludHB0cl90
KSAoMCkgfSB9LAogfTsKIAogI2lmIEVOQUJMRShDb25kaXRpb24xKQpAQCAtMjAyNCw1OSArMjAy
NCw1OSBAQCB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RPYmpET01DCiBzdGF0aWMg
Y29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7
CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNvbnN0cnVjdG9yKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0T2JqQ29uc3RydWN0b3IpIH0gfSwKLSAgICB7ICJyZWFkT25seUxvbmdBdHRyIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlYWRPbmx5TG9uZ0F0dHIpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0s
Ci0gICAgeyAicmVhZE9ubHlTdHJpbmdBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3Vz
dG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9ialJlYWRPbmx5U3RyaW5nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKLSAgICB7ICJyZWFkT25seVRl
c3RPYmpBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlYWRP
bmx5VGVzdE9iakF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPigwKSB9IH0sCi0gICAgeyAiZW51bUF0dHIiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakVudW1BdHRyKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0
SlNUZXN0T2JqRW51bUF0dHIpIH0gfSwKLSAgICB7ICJieXRlQXR0ciIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQnl0ZUF0dHIp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihz
ZXRKU1Rlc3RPYmpCeXRlQXR0cikgfSB9LAotICAgIHsgIm9jdGV0QXR0ciIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqT2N0ZXRB
dHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0T2JqT2N0ZXRBdHRyKSB9IH0sCi0gICAgeyAic2hvcnRBdHRyIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpT
aG9ydEF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPihzZXRKU1Rlc3RPYmpTaG9ydEF0dHIpIH0gfSwKLSAgICB7ICJjbGFtcGVkU2hvcnRB
dHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpDbGFtcGVkU2hvcnRBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqQ2xhbXBlZFNob3J0QXR0cikg
fSB9LAotICAgIHsgImVuZm9yY2VSYW5nZVNob3J0QXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqRW5mb3JjZVJhbmdlU2hv
cnRBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0T2JqRW5mb3JjZVJhbmdlU2hvcnRBdHRyKSB9IH0sCi0gICAgeyAidW5z
aWduZWRTaG9ydEF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1
dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqVW5zaWdu
ZWRTaG9ydEF0dHIpIH0gfSwKLSAgICB7ICJsb25nQXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqTG9uZ0F0dHIpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rl
c3RPYmpMb25nQXR0cikgfSB9LAotICAgIHsgImxvbmdMb25nQXR0ciIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqTG9uZ0xvbmdB
dHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0T2JqTG9uZ0xvbmdBdHRyKSB9IH0sCi0gICAgeyAidW5zaWduZWRMb25nTG9u
Z0F0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3Vz
dG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqVW5zaWduZWRMb25n
TG9uZ0F0dHIpIH0gfSwKLSAgICB7ICJzdHJpbmdBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpTdHJpbmdBdHRyKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0T2JqU3RyaW5nQXR0cikgfSB9LAotICAgIHsgInVzdnN0cmluZ0F0dHIiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialVzdnN0
cmluZ0F0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPihzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyKSB9IH0sCi0gICAgeyAidGVzdE9iakF0
dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9t
QWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE9ialRlc3RPYmpBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqVGVzdE9iakF0dHIpIH0gfSwKLSAgICB7
ICJ0ZXN0TnVsbGFibGVPYmpBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9N
QXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpUZXN0TnVsbGFibGVPYmpBdHRyKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0
T2JqVGVzdE51bGxhYmxlT2JqQXR0cikgfSB9LAotICAgIHsgImxlbmllbnRUZXN0T2JqQXR0ciIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nl
c3NvciksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqTGVu
aWVudFRlc3RPYmpBdHRyKSB9IH0sCi0gICAgeyAic3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1w
dHlTdHJpbmciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE9ialN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0T2JqU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpIH0gfSwKLSAgICB7ICJ1
c3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqVXN2c3RyaW5nQXR0
clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRp
bmdOdWxsQXNFbXB0eVN0cmluZykgfSB9LAotICAgIHsgImJ5dGVTdHJpbmdBdHRyVHJlYXRpbmdO
dWxsQXNFbXB0eVN0cmluZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJp
YnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5
U3RyaW5nKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5n
KSB9IH0sCi0gICAgeyAic3RyaW5nTG9uZ1JlY29yZEF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialN0cmluZ0xvbmdSZWNv
cmRBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0T2JqU3RyaW5nTG9uZ1JlY29yZEF0dHIpIH0gfSwKLSAgICB7ICJ1c3Zz
dHJpbmdMb25nUmVjb3JkQXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0
dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rl
c3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0cikgfSB9LAotICAgIHsgInVzdnN0cmluZ0xvbmdS
ZWNvcmRBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0ciksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialVzdnN0
cmluZ0xvbmdSZWNvcmRBdHRyKSB9IH0sCi0gICAgeyAic3RyaW5nT2JqUmVjb3JkQXR0ciIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
ciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
T2JqU3RyaW5nT2JqUmVjb3JkQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialN0cmluZ09ialJlY29yZEF0dHIpIH0g
fSwKLSAgICB7ICJzdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHIiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialN0cmluZ051bGxh
YmxlT2JqUmVjb3JkQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0cikg
fSB9LAotICAgIHsgInN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHIiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialN0cmluZ1Zv
aWRDYWxsYmFja1JlY29yZEF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpTdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRB
dHRyKSB9IH0sCi0gICAgeyAiZGljdGlvbmFyeUF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakRpY3Rpb25hcnlBdHRyKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0
SlNUZXN0T2JqRGljdGlvbmFyeUF0dHIpIH0gfSwKLSAgICB7ICJudWxsYWJsZURpY3Rpb25hcnlB
dHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpOdWxsYWJsZURpY3Rpb25hcnlBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqTnVsbGFibGVEaWN0
aW9uYXJ5QXR0cikgfSB9LAotICAgIHsgImFubm90YXRlZFR5cGVJblVuaW9uQXR0ciIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2Jq
QW5ub3RhdGVkVHlwZUluVW5pb25BdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5pb25B
dHRyKSB9IH0sCi0gICAgeyAiYW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpBbm5v
dGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5TZXF1ZW5j
ZUF0dHIpIH0gfSwKLSAgICB7ICJpbXBsZW1lbnRhdGlvbkVudW1BdHRyIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpJbXBsZW1l
bnRhdGlvbkVudW1BdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqSW1wbGVtZW50YXRpb25FbnVtQXR0cikgfSB9LAot
ICAgIHsgIm1lZGlhRGV2aWNlcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vz
c29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RPYmpNZWRpYURldmljZXMpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCi0gICAgeyAiWE1MT2JqQXR0ciIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqWE1MT2Jq
QXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KHNldEpTVGVzdE9ialhNTE9iakF0dHIpIH0gfSwKLSAgICB7ICJjcmVhdGUiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNy
ZWF0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KHNldEpTVGVzdE9iakNyZWF0ZSkgfSB9LAotICAgIHsgInJlZmxlY3RlZFN0cmluZ0F0dHIi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRy
KSB9IH0sCi0gICAgeyAicmVmbGVjdGVkVVNWU3RyaW5nQXR0ciIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkVVNW
U3RyaW5nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdE9ialJlZmxlY3RlZFVTVlN0cmluZ0F0dHIpIH0gfSwKLSAgICB7
ICJyZWZsZWN0ZWRJbnRlZ3JhbEF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
T01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0ciksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpT
VGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0cikgfSB9LAotICAgIHsgInJlZmxlY3RlZFVuc2ln
bmVkSW50ZWdyYWxBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmli
dXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0ciksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpT
VGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKSB9IH0sCi0gICAgeyAicmVmbGVj
dGVkQm9vbGVhbkF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1
dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqUmVm
bGVjdGVkQm9vbGVhbkF0dHIpIH0gfSwKLSAgICB7ICJyZWZsZWN0ZWRVUkxBdHRyIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpS
ZWZsZWN0ZWRVUkxBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cikgfSB9LAotICAgIHsg
InJlZmxlY3RlZFVTVlVSTEF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01B
dHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3RlZFVTVlVSTEF0dHIpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RP
YmpSZWZsZWN0ZWRVU1ZVUkxBdHRyKSB9IH0sCi0gICAgeyAicmVmbGVjdGVkU3RyaW5nQXR0ciIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nl
c3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIp
IH0gfSwKLSAgICB7ICJyZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxlY3Rl
ZEN1c3RvbUludGVncmFsQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0
cikgfSB9LAotICAgIHsgInJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0
ZWRDdXN0b21Cb29sZWFuQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRy
KSB9IH0sCi0gICAgeyAicmVmbGVjdGVkQ3VzdG9tVVJMQXR0ciIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkQ3Vz
dG9tVVJMQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIpIH0gfSwKKyAgICB7
ICJyZWFkT25seUxvbmdBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNz
b3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9ial9yZWFkT25seUxvbmdBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsgInJlYWRPbmx5U3RyaW5nQXR0ciIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfcmVhZE9ubHlTdHJpbmdB
dHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oMCkgfSB9LAorICAgIHsgInJlYWRPbmx5VGVzdE9iakF0dHIiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJp
YnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3JlYWRPbmx5VGVzdE9iakF0dHIpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAg
eyAiZW51bUF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUp
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9ial9lbnVtQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9lbnVtQXR0cikgfSB9LAor
ICAgIHsgImJ5dGVBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmli
dXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfYnl0ZUF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfYnl0ZUF0dHIpIH0g
fSwKKyAgICB7ICJvY3RldEF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01B
dHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9vY3RldEF0dHIpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfb2N0ZXRB
dHRyKSB9IH0sCisgICAgeyAic2hvcnRBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfc2hvcnRBdHRyKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2Jq
X3Nob3J0QXR0cikgfSB9LAorICAgIHsgImNsYW1wZWRTaG9ydEF0dHIiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9jbGFtcGVk
U2hvcnRBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oc2V0SlNUZXN0T2JqX2NsYW1wZWRTaG9ydEF0dHIpIH0gfSwKKyAgICB7ICJlbmZv
cmNlUmFuZ2VTaG9ydEF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRy
aWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9lbmZvcmNlUmFuZ2VTaG9ydEF0dHIpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RP
YmpfZW5mb3JjZVJhbmdlU2hvcnRBdHRyKSB9IH0sCisgICAgeyAidW5zaWduZWRTaG9ydEF0dHIi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdE9ial91bnNpZ25lZFNob3J0QXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial91bnNpZ25lZFNob3J0QXR0cikg
fSB9LAorICAgIHsgImxvbmdBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9N
QXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfbG9uZ0F0dHIpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfbG9uZ0F0
dHIpIH0gfSwKKyAgICB7ICJsb25nTG9uZ0F0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9sb25nTG9uZ0F0dHIpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rl
c3RPYmpfbG9uZ0xvbmdBdHRyKSB9IH0sCisgICAgeyAidW5zaWduZWRMb25nTG9uZ0F0dHIiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNz
b3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9ial91bnNpZ25lZExvbmdMb25nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial91bnNpZ25lZExvbmdMb25nQXR0
cikgfSB9LAorICAgIHsgInN0cmluZ0F0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9zdHJpbmdBdHRyKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2Jq
X3N0cmluZ0F0dHIpIH0gfSwKKyAgICB7ICJ1c3ZzdHJpbmdBdHRyIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfdXN2c3RyaW5n
QXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KHNldEpTVGVzdE9ial91c3ZzdHJpbmdBdHRyKSB9IH0sCisgICAgeyAidGVzdE9iakF0dHIi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdE9ial90ZXN0T2JqQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial90ZXN0T2JqQXR0cikgfSB9LAorICAgIHsg
InRlc3ROdWxsYWJsZU9iakF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01B
dHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial90ZXN0TnVsbGFibGVPYmpBdHRyKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0
T2JqX3Rlc3ROdWxsYWJsZU9iakF0dHIpIH0gfSwKKyAgICB7ICJsZW5pZW50VGVzdE9iakF0dHIi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9sZW5pZW50VGVzdE9iakF0dHIpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpf
bGVuaWVudFRlc3RPYmpBdHRyKSB9IH0sCisgICAgeyAic3RyaW5nQXR0clRyZWF0aW5nTnVsbEFz
RW1wdHlTdHJpbmciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUp
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9ial9zdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdE9ial9zdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZykgfSB9LAorICAg
IHsgInVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfdXN2c3Ry
aW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfdXN2c3RyaW5nQXR0
clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpIH0gfSwKKyAgICB7ICJieXRlU3RyaW5nQXR0clRy
ZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
T01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9ieXRlU3RyaW5nQXR0clRyZWF0aW5nTnVs
bEFzRW1wdHlTdHJpbmcpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfYnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0Vt
cHR5U3RyaW5nKSB9IH0sCisgICAgeyAic3RyaW5nTG9uZ1JlY29yZEF0dHIiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9zdHJp
bmdMb25nUmVjb3JkQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9zdHJpbmdMb25nUmVjb3JkQXR0cikgfSB9LAor
ICAgIHsgInVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfdXN2c3RyaW5nTG9uZ1JlY29y
ZEF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3RPYmpfdXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIpIH0gfSwKKyAgICB7ICJ1
c3ZzdHJpbmdMb25nUmVjb3JkQXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRP
TUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3VzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0
SlNUZXN0T2JqX3VzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKSB9IH0sCisgICAgeyAic3RyaW5nT2Jq
UmVjb3JkQXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0T2JqX3N0cmluZ09ialJlY29yZEF0dHIpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfc3RyaW5n
T2JqUmVjb3JkQXR0cikgfSB9LAorICAgIHsgInN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0ciIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nl
c3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0T2JqX3N0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9zdHJpbmdOdWxs
YWJsZU9ialJlY29yZEF0dHIpIH0gfSwKKyAgICB7ICJzdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRB
dHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpfc3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0ciksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9zdHJp
bmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyKSB9IH0sCisgICAgeyAiZGljdGlvbmFyeUF0dHIiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNz
b3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9ial9kaWN0aW9uYXJ5QXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9kaWN0aW9uYXJ5QXR0cikgfSB9LAorICAg
IHsgIm51bGxhYmxlRGljdGlvbmFyeUF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9udWxsYWJsZURpY3Rpb25hcnlBdHRy
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
c2V0SlNUZXN0T2JqX251bGxhYmxlRGljdGlvbmFyeUF0dHIpIH0gfSwKKyAgICB7ICJhbm5vdGF0
ZWRUeXBlSW5VbmlvbkF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRy
aWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9hbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHIpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rl
c3RPYmpfYW5ub3RhdGVkVHlwZUluVW5pb25BdHRyKSB9IH0sCisgICAgeyAiYW5ub3RhdGVkVHlw
ZUluU2VxdWVuY2VBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmli
dXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfYW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0T2JqX2Fubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0cikgfSB9LAorICAgIHsgImltcGxlbWVu
dGF0aW9uRW51bUF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1
dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9pbXBsZW1lbnRhdGlvbkVudW1BdHRyKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2Jq
X2ltcGxlbWVudGF0aW9uRW51bUF0dHIpIH0gfSwKKyAgICB7ICJtZWRpYURldmljZXMiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX21lZGlhRGV2aWNlcyksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwK
KyAgICB7ICJYTUxPYmpBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0
cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfWE1MT2JqQXR0ciksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9YTUxPYmpB
dHRyKSB9IH0sCisgICAgeyAiY3JlYXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfY3JlYXRlKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX2NyZWF0
ZSkgfSB9LAorICAgIHsgInJlZmxlY3RlZFN0cmluZ0F0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9yZWZsZWN0ZWRTdHJp
bmdBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0T2JqX3JlZmxlY3RlZFN0cmluZ0F0dHIpIH0gfSwKKyAgICB7ICJyZWZs
ZWN0ZWRVU1ZTdHJpbmdBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0
cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfcmVmbGVjdGVkVVNWU3RyaW5nQXR0ciksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVz
dE9ial9yZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyKSB9IH0sCisgICAgeyAicmVmbGVjdGVkSW50ZWdy
YWxBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1
c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RPYmpfcmVmbGVjdGVkSW50ZWdyYWxBdHRyKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX3JlZmxlY3Rl
ZEludGVncmFsQXR0cikgfSB9LAorICAgIHsgInJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRy
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RPYmpfcmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfcmVmbGVj
dGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIpIH0gfSwKKyAgICB7ICJyZWZsZWN0ZWRCb29sZWFuQXR0
ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21B
Y2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0T2JqX3JlZmxlY3RlZEJvb2xlYW5BdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX3JlZmxlY3RlZEJvb2xl
YW5BdHRyKSB9IH0sCisgICAgeyAicmVmbGVjdGVkVVJMQXR0ciIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3JlZmxlY3RlZFVS
TEF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3RPYmpfcmVmbGVjdGVkVVJMQXR0cikgfSB9LAorICAgIHsgInJlZmxlY3Rl
ZFVTVlVSTEF0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUp
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9ial9yZWZsZWN0ZWRVU1ZVUkxBdHRyKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX3JlZmxl
Y3RlZFVTVlVSTEF0dHIpIH0gfSwKKyAgICB7ICJyZWZsZWN0ZWRTdHJpbmdBdHRyIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpf
cmVmbGVjdGVkU3RyaW5nQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9yZWZsZWN0ZWRTdHJpbmdBdHRyKSB9IH0s
CisgICAgeyAicmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfcmVmbGVjdGVkQ3Vz
dG9tSW50ZWdyYWxBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX3JlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cikg
fSB9LAorICAgIHsgInJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfcmVmbGVjdGVk
Q3VzdG9tQm9vbGVhbkF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfcmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIp
IH0gfSwKKyAgICB7ICJyZWZsZWN0ZWRDdXN0b21VUkxBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfcmVmbGVjdGVkQ3Vz
dG9tVVJMQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9yZWZsZWN0ZWRDdXN0b21VUkxBdHRyKSB9IH0sCiAjaWYg
RU5BQkxFKFRFU1RfRkVBVFVSRSkKLSAgICB7ICJlbmFibGVkQXRSdW50aW1lQXR0cmlidXRlIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vz
c29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqRW5hYmxlZEF0UnVudGlt
ZUF0dHJpYnV0ZSkgfSB9LAorICAgIHsgImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3Ig
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
al9lbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX2VuYWJsZWRBdFJ1bnRpbWVB
dHRyaWJ1dGUpIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0g
fSwKICNlbmRpZgotICAgIHsgInR5cGVkQXJyYXlBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpUeXBlZEFycmF5QXR0ciks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdE9ialR5cGVkQXJyYXlBdHRyKSB9IH0sCi0gICAgeyAiY3VzdG9tQXR0ciIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2Jq
Q3VzdG9tQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTVGVzdE9iakN1c3RvbUF0dHIpIH0gfSwKKyAgICB7ICJ0eXBlZEFycmF5
QXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0
b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0T2JqX3R5cGVkQXJyYXlBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX3R5cGVkQXJyYXlBdHRyKSB9
IH0sCisgICAgeyAiY3VzdG9tQXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRP
TUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX2N1c3RvbUF0dHIpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfY3Vz
dG9tQXR0cikgfSB9LAogI2lmIEVOQUJMRShDb25kaXRpb240KQogICAgIHsgImpzQnVpbHRpbkF0
dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpB
Y2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkJ1aWx0aW4pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8QnVpbHRpbkdlbmVyYXRvcj4odGVzdE9iakpzQnVpbHRp
bkF0dHJpYnV0ZUNvZGVHZW5lcmF0b3IpLCAoaW50cHRyX3QpIChzZXRUZXN0T2JqSnNCdWlsdGlu
QXR0cmlidXRlQ29kZUdlbmVyYXRvcikgfSB9LAogI2Vsc2UKQEAgLTIwODcsMTEzICsyMDg3LDEx
MyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqUHJvCiAjZWxzZQogICAg
IHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKLSAgICB7ICJvbmZvbyIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nl
c3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0T2JqT25mb28pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpPbmZvbykgfSB9LAotICAgIHsgIm9ud2Via2l0Zm9vIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vz
c29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RPYmpPbndlYmtpdGZvbyksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iak9ud2Via2l0Zm9vKSB9IH0sCi0gICAgeyAid2l0
aEV4ZWNTdGF0ZUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0
dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqV2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZSksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVz
dE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGUpIH0gfSwKLSAgICB7ICJ3aXRoQ2FsbFdpdGhBbmRT
ZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRP
TUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdp
dGhBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJp
YnV0ZSkgfSB9LAotICAgIHsgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vz
c29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialdpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKSB9IH0sCi0gICAgeyAid2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialdpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUpIH0gfSwKLSAgICB7ICJ3aXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3Ig
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
aldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0
ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNw
YWNlc0F0dHJpYnV0ZSkgfSB9LAorICAgIHsgIm9uZm9vIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfb25mb28pLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RP
Ympfb25mb28pIH0gfSwKKyAgICB7ICJvbndlYmtpdGZvbyIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX29ud2Via2l0Zm9vKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0
SlNUZXN0T2JqX29ud2Via2l0Zm9vKSB9IH0sCisgICAgeyAid2l0aEV4ZWNTdGF0ZUF0dHJpYnV0
ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21B
Y2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0T2JqX3dpdGhFeGVjU3RhdGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfd2l0aEV4ZWNTdGF0
ZUF0dHJpYnV0ZSkgfSB9LAorICAgIHsgIndpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0
cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1
c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RPYmpfd2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRK
U1Rlc3RPYmpfd2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUpIH0gfSwKKyAg
ICB7ICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3dpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX3dpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QXR0cmlidXRlKSB9IH0sCisgICAgeyAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
T01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial93aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial93aXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZSkgfSB9LAorICAgIHsgIndpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3dpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVz
dE9ial93aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRy
aWJ1dGUpIH0gfSwKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKLSAgICB7ICJjb25kaXRpb25hbEF0
dHIxIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQ
cm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMSkg
fSB9LAorICAgIHsgImNvbmRpdGlvbmFsQXR0cjEiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9jb25kaXRpb25hbEF0dHIxKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0
SlNUZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjEpIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0lu
dHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBF
TkFCTEUoQ29uZGl0aW9uMikKLSAgICB7ICJjb25kaXRpb25hbEF0dHIyIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDb25kaXRp
b25hbEF0dHIyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMikgfSB9LAorICAgIHsgImNvbmRp
dGlvbmFsQXR0cjIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUp
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9ial9jb25kaXRpb25hbEF0dHIyKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX2NvbmRpdGlv
bmFsQXR0cjIpIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0g
fSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikK
LSAgICB7ICJjb25kaXRpb25hbEF0dHIzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0
T2JqQ29uZGl0aW9uYWxBdHRyMykgfSB9LAorICAgIHsgImNvbmRpdGlvbmFsQXR0cjMiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3Ig
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
al9jb25kaXRpb25hbEF0dHIzKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjMpIH0gfSwKICNl
bHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgotICAgIHsg
ImNhY2hlZEF0dHJpYnV0ZTEiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
ciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
T2JqQ2FjaGVkQXR0cmlidXRlMSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKLSAgICB7ICJjYWNoZWRBdHRyaWJ1dGUyIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTIpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9
IH0sCisgICAgeyAiY2FjaGVkQXR0cmlidXRlMSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1
c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RPYmpfY2FjaGVkQXR0cmlidXRlMSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJjYWNoZWRBdHRy
aWJ1dGUyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9jYWNoZWRB
dHRyaWJ1dGUyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oMCkgfSB9LAogI2lmIEVOQUJMRShDT05ESVRJT04pCi0gICAgeyAiY2FjaGVkQXR0
cmlidXRlMyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDYWNoZWRB
dHRyaWJ1dGUzKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oMCkgfSB9LAorICAgIHsgImNhY2hlZEF0dHJpYnV0ZTMiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0
dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX2NhY2hlZEF0dHJpYnV0ZTMpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAjZWxz
ZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKLSAgICB7ICJh
bnlBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUp
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9iakFueUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iakFueUF0dHJpYnV0ZSkg
fSB9LAotICAgIHsgIm9iamVjdEF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqT2JqZWN0QXR0cmlidXRlKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0T2JqT2JqZWN0QXR0cmlidXRlKSB9IH0sCi0gICAgeyAiY29udGVudERvY3VtZW50Iiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNvbnRlbnREb2N1bWVudCksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0g
fSwKLSAgICB7ICJtdXRhYmxlUG9pbnQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
T01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iak11dGFibGVQb2ludCksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iak11
dGFibGVQb2ludCkgfSB9LAotICAgIHsgInN0cmF3YmVycnkiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialN0cmF3YmVycnkpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRK
U1Rlc3RPYmpTdHJhd2JlcnJ5KSB9IH0sCi0gICAgeyAiZGVzY3JpcHRpb24iLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRP
TUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqRGVzY3JpcHRpb24pLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCi0gICAgeyAi
aWQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9t
QWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE9iaklkKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqSWQpIH0gfSwKLSAgICB7ICJoYXNoIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
T01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakhhc2gpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCi0gICAgeyAicmVwbGFj
ZWFibGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1
dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRlKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqUmVw
bGFjZWFibGVBdHRyaWJ1dGUpIH0gfSwKLSAgICB7ICJudWxsYWJsZURvdWJsZUF0dHJpYnV0ZSIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0
dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KDApIH0gfSwKLSAgICB7ICJudWxsYWJsZUxvbmdBdHRyaWJ1dGUiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRP
TUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqTnVsbGFibGVMb25nQXR0cmlidXRlKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9
LAotICAgIHsgIm51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRl
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RPYmpOdWxsYWJsZUJvb2xlYW5BdHRyaWJ1dGUpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCi0gICAg
eyAibnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0
b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0T2JqTnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCi0gICAgeyAibnVsbGFi
bGVMb25nU2V0dGFibGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
T01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmli
dXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUpIH0gfSwKLSAgICB7
ICJudWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ1Nl
dHRhYmxlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0
ZSkgfSB9LAotICAgIHsgIm51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3Ig
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
ak51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpOdWxsYWJsZVVT
VlN0cmluZ1NldHRhYmxlQXR0cmlidXRlKSB9IH0sCi0gICAgeyAibnVsbGFibGVCeXRlU3RyaW5n
U2V0dGFibGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRy
aWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iak51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmli
dXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oc2V0SlNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUpIH0gfSwK
LSAgICB7ICJhdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
ciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
T2JqQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oMCkgfSB9LAotICAgIHsgImF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBl
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZSksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iakF0dHJpYnV0
ZVdpdGhSZXNlcnZlZEVudW1UeXBlKSB9IH0sCi0gICAgeyAidGVzdFJlYWRPbmx5Vm9pZFByb21p
c2VBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqVGVzdFJlYWRPbmx5Vm9pZFByb21pc2VBdHRyaWJ1dGUpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCi0g
ICAgeyAidGVzdFJlYWRPbmx5UHJvbWlzZUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkN1c3RvbUFjY2Vzc29yKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpUZXN0UmVhZE9ubHlQcm9taXNl
QXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oMCkgfSB9LAotICAgIHsgInB1dEZvcndhcmRzQXR0cmlidXRlIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpQdXRG
b3J3YXJkc0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialB1dEZvcndhcmRzQXR0cmlidXRlKSB9IH0sCi0g
ICAgeyAicHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxs
YWJsZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUpIH0g
fSwKLSAgICB7ICJzdHJpbmdpZmllckF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1
dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PihzZXRKU1Rlc3RPYmpTdHJpbmdpZmllckF0dHJpYnV0ZSkgfSB9LAotICAgIHsgImNvbmRpdGlv
bmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2Vk
VG9XaW5kb3dBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93
QXR0cmlidXRlKSB9IH0sCi0gICAgeyAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJp
YnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0
b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZSksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVz
dE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGUpIH0gfSwKLSAgICB7ICJj
b25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDb25k
aXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqQ29u
ZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZSkgfSB9LAorICAgIHsg
ImFueUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0
ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0T2JqX2FueUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9hbnlBdHRyaWJ1
dGUpIH0gfSwKKyAgICB7ICJvYmplY3RBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9vYmplY3RBdHRyaWJ1dGUp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihz
ZXRKU1Rlc3RPYmpfb2JqZWN0QXR0cmlidXRlKSB9IH0sCisgICAgeyAiY29udGVudERvY3VtZW50
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9jb250ZW50RG9jdW1l
bnQpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PigwKSB9IH0sCisgICAgeyAibXV0YWJsZVBvaW50Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfbXV0YWJsZVBvaW50KSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0T2JqX211dGFibGVQb2ludCkgfSB9LAorICAgIHsgInN0cmF3YmVycnkiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9zdHJh
d2JlcnJ5KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0T2JqX3N0cmF3YmVycnkpIH0gfSwKKyAgICB7ICJkZXNjcmlwdGlvbiIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfZGVzY3JpcHRpb24pLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9
IH0sCisgICAgeyAiaWQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1
dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9pZCksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9pZCkgfSB9LAorICAgIHsgImhh
c2giLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX2hhc2gpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0s
CisgICAgeyAicmVwbGFjZWFibGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9yZXBsYWNlYWJsZUF0dHJpYnV0
ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdE9ial9yZXBsYWNlYWJsZUF0dHJpYnV0ZSkgfSB9LAorICAgIHsgIm51bGxhYmxl
RG91YmxlQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3Ig
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
al9udWxsYWJsZURvdWJsZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJudWxsYWJsZUxvbmdBdHRy
aWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX251bGxhYmxl
TG9uZ0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJudWxsYWJsZUJvb2xlYW5BdHRyaWJ1dGUiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX251bGxhYmxlQm9vbGVhbkF0
dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJudWxsYWJsZVN0cmluZ0F0dHJpYnV0ZSIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfbnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUp
LCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigw
KSB9IH0sCisgICAgeyAibnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9udWxs
YWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9udWxsYWJsZUxvbmdTZXR0YWJs
ZUF0dHJpYnV0ZSkgfSB9LAorICAgIHsgIm51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdE9ial9udWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX251bGxh
YmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJudWxsYWJsZVVTVlN0cmlu
Z1NldHRhYmxlQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0
cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfbnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJp
YnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KHNldEpTVGVzdE9ial9udWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlKSB9IH0s
CisgICAgeyAibnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9udWxs
YWJsZUJ5dGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ial9udWxsYWJsZUJ5dGVT
dHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSkgfSB9LAorICAgIHsgImF0dHJpYnV0ZSIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfYXR0cmlidXRlKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAgIHsg
ImF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfYXR0cmlidXRlV2l0aFJlc2Vy
dmVkRW51bVR5cGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfYXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUpIH0g
fSwKKyAgICB7ICJ0ZXN0UmVhZE9ubHlWb2lkUHJvbWlzZUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfdGVzdFJlYWRP
bmx5Vm9pZFByb21pc2VBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAidGVzdFJlYWRPbmx5UHJvbWlz
ZUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVG
dW5jPihqc1Rlc3RPYmpfdGVzdFJlYWRPbmx5UHJvbWlzZUF0dHJpYnV0ZSksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7
ICJwdXRGb3J3YXJkc0F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRP
TUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3B1dEZvcndhcmRzQXR0cmlidXRlKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0T2JqX3B1dEZvcndhcmRzQXR0cmlidXRlKSB9IH0sCisgICAgeyAicHV0Rm9yd2FyZHNOdWxs
YWJsZUF0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0
ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0T2JqX3B1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rl
c3RPYmpfcHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZSkgfSB9LAorICAgIHsgInN0cmluZ2lm
aWVyQXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRl
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RPYmpfc3RyaW5naWZpZXJBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfc3Ry
aW5naWZpZXJBdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJjb25kaXRpb25hbGx5RXhwb3NlZFRvV2lu
ZG93QXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRl
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RPYmpfY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0
ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+
KHNldEpTVGVzdE9ial9jb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QXR0cmlidXRlKSB9IH0s
CisgICAgeyAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZSIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX2Nv
bmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfY29uZGl0aW9u
YWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZSkgfSB9LAorICAgIHsgImNvbmRpdGlvbmFsbHlF
eHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial9jb25kaXRpb25hbGx5RXhw
b3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX2NvbmRpdGlvbmFsbHlF
eHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGUpIH0gfSwKICAgICB7ICItbGVhZGluZy1o
eXBoZW4tYXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmli
dXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpfZGFzaF9sZWFkaW5nX2Rhc2hfaHlwaGVuX2Rhc2hfYXR0
cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0T2JqX2Rhc2hfbGVhZGluZ19kYXNoX2h5cGhlbl9kYXNoX2F0dHJpYnV0
ZSkgfSB9LAotICAgIHsgInRyYWlsaW5nLWh5cGhlbi1hdHRyaWJ1dGUtIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpUcmFpbGlu
Z19kYXNoX2h5cGhlbl9kYXNoX2F0dHJpYnV0ZV9kYXNoXyksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialRyYWlsaW5nX2Rh
c2hfaHlwaGVuX2Rhc2hfYXR0cmlidXRlX2Rhc2hfKSB9IH0sCi0gICAgeyAibGVhZGluZ191bmRl
cnNjb3JlX2F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJp
YnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqTGVhZGluZ191bmRlcnNjb3JlX2F0dHJpYnV0ZSksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpT
VGVzdE9iakxlYWRpbmdfdW5kZXJzY29yZV9hdHRyaWJ1dGUpIH0gfSwKKyAgICB7ICJ0cmFpbGlu
Zy1oeXBoZW4tYXR0cmlidXRlLSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0
dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqX3RyYWlsaW5nX2Rhc2hfaHlwaGVuX2Rhc2hfYXR0
cmlidXRlX2Rhc2hfKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqX3RyYWlsaW5nX2Rhc2hfaHlwaGVuX2Rhc2hfYXR0cmli
dXRlX2Rhc2hfKSB9IH0sCisgICAgeyAibGVhZGluZ191bmRlcnNjb3JlX2F0dHJpYnV0ZSIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
ciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
T2JqX2xlYWRpbmdfdW5kZXJzY29yZV9hdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfbGVhZGluZ191bmRl
cnNjb3JlX2F0dHJpYnV0ZSkgfSB9LAogICAgIHsgIl9kb3VibGVfbGVhZGluZ191bmRlcnNjb3Jl
X2F0dHJpYnV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0T2JqX2RvdWJsZV9sZWFkaW5nX3VuZGVyc2NvcmVfYXR0cmlidXRlKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0
SlNUZXN0T2JqX2RvdWJsZV9sZWFkaW5nX3VuZGVyc2NvcmVfYXR0cmlidXRlKSB9IH0sCi0gICAg
eyAidHJhaWxpbmdfdW5kZXJzY29yZV9hdHRyaWJ1dGVfIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpUcmFpbGluZ191bmRlcnNj
b3JlX2F0dHJpYnV0ZV8pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpUcmFpbGluZ191bmRlcnNjb3JlX2F0dHJpYnV0ZV8p
IH0gfSwKKyAgICB7ICJ0cmFpbGluZ191bmRlcnNjb3JlX2F0dHJpYnV0ZV8iLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ial90cmFp
bGluZ191bmRlcnNjb3JlX2F0dHJpYnV0ZV8pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpfdHJhaWxpbmdfdW5kZXJzY29y
ZV9hdHRyaWJ1dGVfKSB9IH0sCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLSAgICB7ICJlbmFi
bGVkQXRSdW50aW1lT3BlcmF0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkVuYWJsZWRB
dFJ1bnRpbWVPcGVyYXRpb24pLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAiZW5hYmxlZEF0
UnVudGltZU9wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxS
YXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fZW5hYmxlZEF0UnVu
dGltZU9wZXJhdGlvbiksIChpbnRwdHJfdCkgKDEpIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBO
b0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgotICAgIHsgImVuYWJsZWRJblNwZWNpZmlj
V29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkKSwgKGludHB0
cl90KSAoMSkgfSB9LAotICAgIHsgIndvcmxkU3BlY2lmaWNNZXRob2QiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uV29ybGRTcGVjaWZpY01ldGhvZCksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAg
ICB7ICJjYWxjdWxhdGVTZWNyZXRSZXN1bHQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2Fs
Y3VsYXRlU2VjcmV0UmVzdWx0KSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgImdldFNlY3Jl
dEJvb2xlYW4iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZl
RnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbiksIChp
bnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJlbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRp
bWVGZWF0dXJlRW5hYmxlZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxS
YXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fZW5hYmxlZEluU3Bl
Y2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQpLCAoaW50cHRyX3QpICgxKSB9IH0s
CisgICAgeyAid29ybGRTcGVjaWZpY01ldGhvZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25f
d29ybGRTcGVjaWZpY01ldGhvZCksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7ICJjYWxjdWxh
dGVTZWNyZXRSZXN1bHQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2NhbGN1bGF0ZVNlY3Jl
dFJlc3VsdCksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJnZXRTZWNyZXRCb29sZWFuIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9nZXRTZWNyZXRCb29sZWFuKSwgKGludHB0cl90KSAo
MCkgfSB9LAogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi0gICAgeyAidGVzdEZlYXR1cmVHZXRT
ZWNyZXRCb29sZWFuIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2Vj
cmV0Qm9vbGVhbiksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJ0ZXN0RmVhdHVyZUdldFNl
Y3JldEJvb2xlYW4iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RGZWF0dXJlR2V0U2Vj
cmV0Qm9vbGVhbiksIChpbnRwdHJfdCkgKDApIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0lu
dHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgotICAgIHsgInVuZGVmaW5lZE1ldGhvZCIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25VbmRlZmluZWRNZXRob2QpLCAoaW50cHRyX3QpICgwKSB9
IH0sCi0gICAgeyAidW5kZWZpbmVkTWV0aG9kV2l0aEFyZ3MiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uVW5kZWZpbmVkTWV0aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3QpICgzKSB9IH0sCi0gICAg
eyAiYnl0ZU1ldGhvZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdO
YXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CeXRlTWV0aG9kKSwgKGlu
dHB0cl90KSAoMCkgfSB9LAotICAgIHsgImJ5dGVNZXRob2RXaXRoQXJncyIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25CeXRlTWV0aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3QpICgzKSB9IH0sCi0g
ICAgeyAib2N0ZXRNZXRob2QiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0ZXRNZXRob2Qp
LCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAib2N0ZXRNZXRob2RXaXRoQXJncyIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KSAoMykg
fSB9LAotICAgIHsgImxvbmdNZXRob2QiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01l
dGhvZCksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJsb25nTWV0aG9kV2l0aEFyZ3MiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KSAo
MykgfSB9LAotICAgIHsgIm9iak1ldGhvZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpN
ZXRob2QpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAib2JqTWV0aG9kV2l0aEFyZ3MiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3QpICgz
KSB9IH0sCi0gICAgeyAibWV0aG9kV2l0aEFyZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFyZ1RyZWF0aW5nTnVsbEFzRW1wdHlT
dHJpbmcpLCAoaW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAibWV0aG9kV2l0aFhQYXRoTlNSZXNv
bHZlclBhcmFtZXRlciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdO
YXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoWFBhdGhO
U1Jlc29sdmVyUGFyYW1ldGVyKSwgKGludHB0cl90KSAoMSkgfSB9LAotICAgIHsgIm51bGxhYmxl
U3RyaW5nTWV0aG9kIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU3RyaW5nTWV0
aG9kKSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgIm51bGxhYmxlU3RyaW5nU3BlY2lhbE1l
dGhvZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5j
dGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5j
dGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmluZ1NwZWNpYWxNZXRo
b2QpLCAoaW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAibWV0aG9kV2l0aEVudW1BcmciLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEVudW1BcmcpLCAoaW50cHRyX3QpICgxKSB9
IH0sCi0gICAgeyAibWV0aG9kV2l0aFN0YW5kYWxvbmVFbnVtQXJnIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhTdGFuZGFsb25lRW51bUFyZyksIChpbnRwdHJfdCkgKDEpIH0g
fSwKLSAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmcpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0g
ICAgeyAibWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZ0FuZERlZmF1bHRWYWx1ZSIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnQW5kRGVmYXVsdFZhbHVl
KSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgIm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NB
bmRUaHJvd3MiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZl
RnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kVGhhdFJlcXVpcmVzQWxs
QXJnc0FuZFRocm93cyksIChpbnRwdHJfdCkgKDIpIH0gfSwKLSAgICB7ICJtZXRob2RXaXRoVVNW
U3RyaW5nQXJnIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVU1ZTdHJpbmdB
cmcpLCAoaW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAibWV0aG9kV2l0aE51bGxhYmxlVVNWU3Ry
aW5nQXJnIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1
bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOdWxsYWJsZVVTVlN0
cmluZ0FyZyksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJtZXRob2RXaXRoVVNWU3RyaW5n
QXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoVVNWU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyksIChpbnRwdHJf
dCkgKDEpIH0gfSwKLSAgICB7ICJtZXRob2RXaXRoQnl0ZVN0cmluZ0FyZyIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQnl0ZVN0cmluZ0FyZyksIChpbnRwdHJfdCkgKDEpIH0g
fSwKLSAgICB7ICJtZXRob2RXaXRoTnVsbGFibGVCeXRlU3RyaW5nQXJnIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOdWxsYWJsZUJ5dGVTdHJpbmdBcmcpLCAoaW50cHRyX3Qp
ICgxKSB9IH0sCi0gICAgeyAibWV0aG9kV2l0aEJ5dGVTdHJpbmdBcmdUcmVhdGluZ051bGxBc0Vt
cHR5U3RyaW5nIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhCeXRlU3RyaW5n
QXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7
ICJzZXJpYWxpemVkVmFsdWUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU2VyaWFsaXplZFZh
bHVlKSwgKGludHB0cl90KSAoMSkgfSB9LAotICAgIHsgIm1ldGhvZFdpdGhSZWNvcmQiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFJlY29yZCksIChpbnRwdHJfdCkgKDEpIH0g
fSwKLSAgICB7ICJtZXRob2RXaXRoRXhjZXB0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhFeGNlcHRpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAibWV0aG9k
V2l0aEV4Y2VwdGlvblJldHVybmluZ0xvbmciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aEV4Y2VwdGlvblJldHVybmluZ0xvbmcpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAg
eyAibWV0aG9kV2l0aEV4Y2VwdGlvblJldHVybmluZ09iamVjdCIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uUmV0dXJuaW5nT2JqZWN0KSwgKGludHB0cl90KSAo
MCkgfSB9LAotICAgIHsgImN1c3RvbU1ldGhvZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25D
dXN0b21NZXRob2QpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAiY3VzdG9tTWV0aG9kV2l0
aEFyZ3MiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVu
Y3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kV2l0aEFyZ3MpLCAo
aW50cHRyX3QpICgzKSB9IH0sCisgICAgeyAidW5kZWZpbmVkTWV0aG9kIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbl91bmRlZmluZWRNZXRob2QpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAg
eyAidW5kZWZpbmVkTWV0aG9kV2l0aEFyZ3MiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3Vu
ZGVmaW5lZE1ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KSAoMykgfSB9LAorICAgIHsgImJ5dGVN
ZXRob2QiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVu
Y3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2J5dGVNZXRob2QpLCAoaW50cHRyX3Qp
ICgwKSB9IH0sCisgICAgeyAiYnl0ZU1ldGhvZFdpdGhBcmdzIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbl9ieXRlTWV0aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3QpICgzKSB9IH0sCisgICAgeyAi
b2N0ZXRNZXRob2QiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX29jdGV0TWV0aG9kKSwgKGlu
dHB0cl90KSAoMCkgfSB9LAorICAgIHsgIm9jdGV0TWV0aG9kV2l0aEFyZ3MiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX29jdGV0TWV0aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3QpICgzKSB9IH0s
CisgICAgeyAibG9uZ01ldGhvZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbG9uZ01ldGhv
ZCksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJsb25nTWV0aG9kV2l0aEFyZ3MiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uX2xvbmdNZXRob2RXaXRoQXJncyksIChpbnRwdHJfdCkgKDMp
IH0gfSwKKyAgICB7ICJvYmpNZXRob2QiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX29iak1l
dGhvZCksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJvYmpNZXRob2RXaXRoQXJncyIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb2JqTWV0aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3QpICgz
KSB9IH0sCisgICAgeyAibWV0aG9kV2l0aEFyZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhBcmdUcmVhdGluZ051bGxBc0VtcHR5
U3RyaW5nKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgIm1ldGhvZFdpdGhYUGF0aE5TUmVz
b2x2ZXJQYXJhbWV0ZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhYUGF0
aE5TUmVzb2x2ZXJQYXJhbWV0ZXIpLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAibnVsbGFi
bGVTdHJpbmdNZXRob2QiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX251bGxhYmxlU3RyaW5n
TWV0aG9kKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgIm51bGxhYmxlU3RyaW5nU3BlY2lh
bE1ldGhvZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpG
dW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVG
dW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbnVsbGFibGVTdHJpbmdTcGVjaWFs
TWV0aG9kKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgIm1ldGhvZFdpdGhFbnVtQXJnIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoRW51bUFyZyksIChpbnRwdHJfdCkg
KDEpIH0gfSwKKyAgICB7ICJtZXRob2RXaXRoU3RhbmRhbG9uZUVudW1BcmciLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhTdGFuZGFsb25lRW51bUFyZyksIChpbnRwdHJfdCkg
KDEpIH0gfSwKKyAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnKSwgKGludHB0cl90KSAoMCkg
fSB9LAorICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmdBbmREZWZhdWx0VmFsdWUiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbEVudW1BcmdBbmREZWZh
dWx0VmFsdWUpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAibWV0aG9kVGhhdFJlcXVpcmVz
QWxsQXJnc0FuZFRocm93cyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxS
YXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kVGhhdFJl
cXVpcmVzQWxsQXJnc0FuZFRocm93cyksIChpbnRwdHJfdCkgKDIpIH0gfSwKKyAgICB7ICJtZXRo
b2RXaXRoVVNWU3RyaW5nQXJnIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRo
VVNWU3RyaW5nQXJnKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgIm1ldGhvZFdpdGhOdWxs
YWJsZVVTVlN0cmluZ0FyZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxS
YXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE51
bGxhYmxlVVNWU3RyaW5nQXJnKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgIm1ldGhvZFdp
dGhVU1ZTdHJpbmdBcmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbl9tZXRob2RXaXRoVVNWU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmlu
ZyksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7ICJtZXRob2RXaXRoQnl0ZVN0cmluZ0FyZyIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aEJ5dGVTdHJpbmdBcmcpLCAoaW50
cHRyX3QpICgxKSB9IH0sCisgICAgeyAibWV0aG9kV2l0aE51bGxhYmxlQnl0ZVN0cmluZ0FyZyIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE51bGxhYmxlQnl0ZVN0cmluZ0Fy
ZyksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7ICJtZXRob2RXaXRoQnl0ZVN0cmluZ0FyZ1Ry
ZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhv
ZFdpdGhCeXRlU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyksIChpbnRwdHJfdCkg
KDEpIH0gfSwKKyAgICB7ICJzZXJpYWxpemVkVmFsdWUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uX3NlcmlhbGl6ZWRWYWx1ZSksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7ICJtZXRob2RX
aXRoUmVjb3JkIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoUmVjb3JkKSwg
KGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgIm1ldGhvZFdpdGhFeGNlcHRpb24iLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhFeGNlcHRpb24pLCAoaW50cHRyX3QpICgwKSB9
IH0sCisgICAgeyAibWV0aG9kV2l0aEV4Y2VwdGlvblJldHVybmluZ0xvbmciLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdMb25nKSwgKGludHB0
cl90KSAoMCkgfSB9LAorICAgIHsgIm1ldGhvZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdPYmplY3Qi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24p
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdP
YmplY3QpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAiY3VzdG9tTWV0aG9kIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9jdXN0b21NZXRob2QpLCAoaW50cHRyX3QpICgwKSB9IH0sCisg
ICAgeyAiY3VzdG9tTWV0aG9kV2l0aEFyZ3MiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2N1
c3RvbU1ldGhvZFdpdGhBcmdzKSwgKGludHB0cl90KSAoMykgfSB9LAogI2lmIEVOQUJMRShDb25k
aXRpb24zKQogICAgIHsgImpzQnVpbHRpbk1ldGhvZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpCdWlsdGluKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PEJ1aWx0aW5HZW5lcmF0b3I+KHRlc3RPYmpKc0J1aWx0aW5NZXRob2RDb2Rl
R2VuZXJhdG9yKSwgKGludHB0cl90KSAoMCkgfSB9LAogI2Vsc2UKQEAgLTIyMDQsMTM3ICsyMjA0
LDEzNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqUHJvCiAjZWxzZQog
ICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsgMCwgMCB9IH0sCiAjZW5kaWYKLSAgICB7ICJwdWJs
aWNBbmRQcml2YXRlTWV0aG9kIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblB1YmxpY0FuZFBy
aXZhdGVNZXRob2QpLCAoaW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAiYWRkRXZlbnRMaXN0ZW5l
ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlv
biksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlv
bj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3RlbmVyKSwgKGludHB0cl90
KSAoMikgfSB9LAotICAgIHsgInJlbW92ZUV2ZW50TGlzdGVuZXIiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uUmVtb3ZlRXZlbnRMaXN0ZW5lciksIChpbnRwdHJfdCkgKDIpIH0gfSwKLSAgICB7
ICJ3aXRoRXhlY1N0YXRlVm9pZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0
YXRlVm9pZCksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJ3aXRoRXhlY1N0YXRlT2JqIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVPYmopLCAoaW50cHRyX3QpICgw
KSB9IH0sCi0gICAgeyAid2l0aEV4ZWNTdGF0ZVZvaWRFeGNlcHRpb24iLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZVZvaWRFeGNlcHRpb24pLCAoaW50cHRyX3QpICgwKSB9
IH0sCi0gICAgeyAid2l0aEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbiIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25XaXRoRXhlY1N0YXRlT2JqRXhjZXB0aW9uKSwgKGludHB0cl90KSAoMCkgfSB9LAot
ICAgIHsgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0KSwgKGludHB0cl90KSAoMCkgfSB9LAotICAg
IHsgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlKSwgKGlu
dHB0cl90KSAoMCkgfSB9LAotICAgIHsgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhl
Y1N0YXRlT2JqRXhjZXB0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlT2JqRXhjZXB0aW9uKSwgKGludHB0cl90KSAoMCkg
fSB9LAotICAgIHsgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNw
YWNlcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5j
dGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5j
dGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAid2l0
aERvY3VtZW50QXJndW1lbnQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aERvY3VtZW50
QXJndW1lbnQpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAid2l0aENhbGxlckRvY3VtZW50
QXJndW1lbnQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZl
RnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aENhbGxlckRvY3VtZW50QXJn
dW1lbnQpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAid2l0aENhbGxlcldpbmRvd0FyZ3Vt
ZW50Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0
aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhDYWxsZXJXaW5kb3dBcmd1bWVudCks
IChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxBcmciLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXJnKSwgKGludHB0cl90KSAo
MCkgfSB9LAotICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbEFyZ0FuZERlZmF1bHRWYWx1ZSIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBcmdBbmREZWZhdWx0VmFs
dWUpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAibWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJn
QW5kT3B0aW9uYWxBcmciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9w
dGlvbmFsQXJnQW5kT3B0aW9uYWxBcmcpLCAoaW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAibWV0
aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyksIChp
bnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxTdHJpbmciLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nKSwgKGludHB0cl90
KSAoMCkgfSB9LAotICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbFVTVlN0cmluZyIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVU1ZTdHJpbmcpLCAoaW50cHRyX3Qp
ICgwKSB9IH0sCi0gICAgeyAibWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZyIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nKSwgKGludHB0cl90
KSAoMCkgfSB9LAotICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0FuZERlZmF1bHRWYWx1
ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlv
biksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlv
bj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdBbmRE
ZWZhdWx0VmFsdWUpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAibWV0aG9kV2l0aE9wdGlv
bmFsQXRvbVN0cmluZ0FuZERlZmF1bHRWYWx1ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nQW5kRGVmYXVsdFZhbHVlKSwgKGludHB0cl90KSAo
MCkgfSB9LAotICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzTnVsbCIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc051bGwpLCAoaW50cHRy
X3QpICgwKSB9IH0sCi0gICAgeyAibWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNVbmRlZmluZWQi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24p
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNVbmRl
ZmluZWQpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAibWV0aG9kV2l0aE9wdGlvbmFsQXRv
bVN0cmluZ0lzTnVsbCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdO
YXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxBdG9tU3RyaW5nSXNOdWxsKSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgIm1ldGhvZFdp
dGhPcHRpb25hbFN0cmluZ0lzRW1wdHlTdHJpbmciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNFbXB0eVN0cmluZyksIChpbnRwdHJfdCkgKDApIH0g
fSwKLSAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxVU1ZTdHJpbmdJc0VtcHR5U3RyaW5nIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVTVlN0cmluZ0lzRW1wdHlT
dHJpbmcpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAibWV0aG9kV2l0aE9wdGlvbmFsQXRv
bVN0cmluZ0lzRW1wdHlTdHJpbmciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE9wdGlvbmFsQXRvbVN0cmluZ0lzRW1wdHlTdHJpbmcpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0g
ICAgeyAibWV0aG9kV2l0aE9wdGlvbmFsRG91YmxlSXNOYU4iLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRG91YmxlSXNOYU4pLCAoaW50cHRyX3QpICgwKSB9IH0s
Ci0gICAgeyAibWV0aG9kV2l0aE9wdGlvbmFsRmxvYXRJc05hTiIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxGbG9hdElzTmFOKSwgKGludHB0cl90KSAoMCkgfSB9
LAotICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbExvbmdMb25nIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbExvbmdMb25nKSwgKGludHB0cl90KSAoMCkgfSB9LAot
ICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbExvbmdMb25nSXNaZXJvIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbExvbmdMb25nSXNaZXJvKSwgKGludHB0cl90KSAo
MCkgfSB9LAotICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbFVuc2lnbmVkTG9uZ0xvbmciLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVW5zaWduZWRMb25nTG9uZyks
IChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxVbnNpZ25lZExv
bmdMb25nSXNaZXJvIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25h
bFVuc2lnbmVkTG9uZ0xvbmdJc1plcm8pLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAibWV0
aG9kV2l0aE9wdGlvbmFsU2VxdWVuY2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsU2VxdWVuY2UpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAibWV0aG9k
V2l0aE9wdGlvbmFsU2VxdWVuY2VJc0VtcHR5Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhPcHRpb25hbFNlcXVlbmNlSXNFbXB0eSksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAg
ICB7ICJtZXRob2RXaXRoT3B0aW9uYWxCb29sZWFuIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbEJvb2xlYW4pLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAi
bWV0aG9kV2l0aE9wdGlvbmFsQm9vbGVhbklzRmFsc2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE9wdGlvbmFsQm9vbGVhbklzRmFsc2UpLCAoaW50cHRyX3QpICgwKSB9IH0s
Ci0gICAgeyAibWV0aG9kV2l0aE9wdGlvbmFsQW55Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbEFueSksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJtZXRo
b2RXaXRoT3B0aW9uYWxPYmplY3QiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE9wdGlvbmFsT2JqZWN0KSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgIm1ldGhvZFdpdGhP
cHRpb25hbFdyYXBwZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlv
bmFsV3JhcHBlciksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJtZXRob2RXaXRoT3B0aW9u
YWxOdWxsYWJsZVdyYXBwZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsTnVsbGFibGVXcmFwcGVyKSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgIm1ldGhv
ZFdpdGhPcHRpb25hbE51bGxhYmxlV3JhcHBlcklzTnVsbCIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBwZXJJc051bGwpLCAoaW50cHRyX3Qp
ICgwKSB9IH0sCi0gICAgeyAibWV0aG9kV2l0aE9wdGlvbmFsWFBhdGhOU1Jlc29sdmVyIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFhQYXRoTlNSZXNvbHZlciks
IChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxSZWNvcmQiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsUmVjb3JkKSwgKGludHB0
cl90KSAoMCkgfSB9LAotICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbFByb21pc2UiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsUHJvbWlzZSksIChpbnRwdHJfdCkg
KDApIH0gfSwKLSAgICB7ICJtZXRob2RXaXRoQ2FsbGJhY2tJbnRlcmZhY2VBcmciLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrSW50ZXJmYWNlQXJnKSwgKGludHB0
cl90KSAoMSkgfSB9LAotICAgIHsgIm1ldGhvZFdpdGhOdWxsYWJsZUNhbGxiYWNrSW50ZXJmYWNl
QXJnIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0
aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOdWxsYWJsZUNhbGxiYWNr
SW50ZXJmYWNlQXJnKSwgKGludHB0cl90KSAoMSkgfSB9LAotICAgIHsgIm1ldGhvZFdpdGhOb25D
YWxsYmFja0ludGVyZmFjZUFyZ0FuZENhbGxiYWNrSW50ZXJmYWNlQXJnIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25DYWxsYmFja0ludGVyZmFjZUFyZ0FuZENhbGxiYWNr
SW50ZXJmYWNlQXJnKSwgKGludHB0cl90KSAoMikgfSB9LAotICAgIHsgIm1ldGhvZFdpdGhPcHRp
b25hbENhbGxiYWNrSW50ZXJmYWNlQXJnIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbENhbGxiYWNrSW50ZXJmYWNlQXJnKSwgKGludHB0cl90KSAoMCkgfSB9LAot
ICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlQ2FsbGJhY2tJbnRlcmZhY2VBcmciLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVDYWxsYmFj
a0ludGVyZmFjZUFyZyksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJtZXRob2RXaXRoQ2Fs
bGJhY2tGdW5jdGlvbkFyZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxS
YXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2Fs
bGJhY2tGdW5jdGlvbkFyZyksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJtZXRob2RXaXRo
TnVsbGFibGVDYWxsYmFja0Z1bmN0aW9uQXJnIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhOdWxsYWJsZUNhbGxiYWNrRnVuY3Rpb25BcmcpLCAoaW50cHRyX3QpICgxKSB9IH0s
Ci0gICAgeyAibWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tGdW5jdGlvbkFyZyIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxs
YmFja0Z1bmN0aW9uQXJnKSwgKGludHB0cl90KSAoMikgfSB9LAotICAgIHsgIm1ldGhvZFdpdGhP
cHRpb25hbENhbGxiYWNrRnVuY3Rpb25BcmciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aE9wdGlvbmFsQ2FsbGJhY2tGdW5jdGlvbkFyZyksIChpbnRwdHJfdCkgKDApIH0gfSwK
LSAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZUNhbGxiYWNrRnVuY3Rpb25BcmciLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVDYWxsYmFj
a0Z1bmN0aW9uQXJnKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgInB1YmxpY0FuZFByaXZh
dGVNZXRob2QiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZl
RnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3B1YmxpY0FuZFByaXZhdGVNZXRo
b2QpLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAiYWRkRXZlbnRMaXN0ZW5lciIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25fYWRkRXZlbnRMaXN0ZW5lciksIChpbnRwdHJfdCkgKDIpIH0g
fSwKKyAgICB7ICJyZW1vdmVFdmVudExpc3RlbmVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bl9yZW1vdmVFdmVudExpc3RlbmVyKSwgKGludHB0cl90KSAoMikgfSB9LAorICAgIHsgIndpdGhF
eGVjU3RhdGVWb2lkIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoRXhlY1N0YXRlVm9p
ZCksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJ3aXRoRXhlY1N0YXRlT2JqIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl93aXRoRXhlY1N0YXRlT2JqKSwgKGludHB0cl90KSAoMCkgfSB9
LAorICAgIHsgIndpdGhFeGVjU3RhdGVWb2lkRXhjZXB0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbl93aXRoRXhlY1N0YXRlVm9pZEV4Y2VwdGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwK
KyAgICB7ICJ3aXRoRXhlY1N0YXRlT2JqRXhjZXB0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbl93aXRoRXhlY1N0YXRlT2JqRXhjZXB0aW9uKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAg
IHsgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bl93aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7
ICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZSIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25fd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGUpLCAoaW50
cHRyX3QpICgwKSB9IH0sCisgICAgeyAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVj
U3RhdGVPYmpFeGNlcHRpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3dpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlT2JqRXhjZXB0aW9uKSwgKGludHB0cl90KSAoMCkg
fSB9LAorICAgIHsgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNw
YWNlcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5j
dGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5j
dGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgIndp
dGhEb2N1bWVudEFyZ3VtZW50Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoRG9jdW1l
bnRBcmd1bWVudCksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJ3aXRoQ2FsbGVyRG9jdW1l
bnRBcmd1bWVudCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aENhbGxlckRvY3VtZW50
QXJndW1lbnQpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAid2l0aENhbGxlcldpbmRvd0Fy
Z3VtZW50Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1
bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoQ2FsbGVyV2luZG93QXJndW1l
bnQpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAibWV0aG9kV2l0aE9wdGlvbmFsQXJnIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxBcmcpLCAoaW50cHRy
X3QpICgwKSB9IH0sCisgICAgeyAibWV0aG9kV2l0aE9wdGlvbmFsQXJnQW5kRGVmYXVsdFZhbHVl
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxBcmdBbmREZWZh
dWx0VmFsdWUpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAibWV0aG9kV2l0aE5vbk9wdGlv
bmFsQXJnQW5kT3B0aW9uYWxBcmciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdp
dGhOb25PcHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAg
IHsgIm1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxB
cmdzKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbFN0cmlu
ZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlv
biksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlv
bj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nKSwg
KGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbFVTVlN0cmluZyIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5nKSwg
KGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmci
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24p
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmcp
LCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAibWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nQW5k
RGVmYXVsdFZhbHVlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9u
YWxTdHJpbmdBbmREZWZhdWx0VmFsdWUpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAibWV0
aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0FuZERlZmF1bHRWYWx1ZSIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0FuZERlZmF1bHRWYWx1ZSks
IChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc051
bGwiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rp
b24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rp
b24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lz
TnVsbCksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxTdHJp
bmdJc1VuZGVmaW5lZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdO
YXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlv
bmFsU3RyaW5nSXNVbmRlZmluZWQpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAibWV0aG9k
V2l0aE9wdGlvbmFsQXRvbVN0cmluZ0lzTnVsbCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25f
bWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0lzTnVsbCksIChpbnRwdHJfdCkgKDApIH0gfSwK
KyAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc0VtcHR5U3RyaW5nIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc0VtcHR5U3RyaW5nKSwg
KGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbFVTVlN0cmluZ0lz
RW1wdHlTdHJpbmciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25h
bFVTVlN0cmluZ0lzRW1wdHlTdHJpbmcpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAibWV0
aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0lzRW1wdHlTdHJpbmciLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdJc0VtcHR5U3RyaW5nKSwgKGlu
dHB0cl90KSAoMCkgfSB9LAorICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbERvdWJsZUlzTmFOIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxEb3VibGVJc05hTiks
IChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxGbG9hdElzTmFO
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxGbG9hdElzTmFO
KSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbExvbmdMb25n
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxMb25nTG9uZyks
IChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxMb25nTG9uZ0lz
WmVybyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5j
dGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5j
dGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsTG9uZ0xv
bmdJc1plcm8pLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAibWV0aG9kV2l0aE9wdGlvbmFs
VW5zaWduZWRMb25nTG9uZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxS
YXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9w
dGlvbmFsVW5zaWduZWRMb25nTG9uZyksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJtZXRo
b2RXaXRoT3B0aW9uYWxVbnNpZ25lZExvbmdMb25nSXNaZXJvIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxVbnNpZ25lZExvbmdMb25nSXNaZXJvKSwgKGludHB0
cl90KSAoMCkgfSB9LAorICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbFNlcXVlbmNlIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZSksIChpbnRwdHJf
dCkgKDApIH0gfSwKKyAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZUlzRW1wdHkiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbFNlcXVlbmNlSXNFbXB0
eSksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxCb29sZWFu
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxCb29sZWFuKSwg
KGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbEJvb2xlYW5Jc0Zh
bHNlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0
aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxCb29sZWFu
SXNGYWxzZSksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxB
bnkiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rp
b24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rp
b24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbEFueSksIChp
bnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxPYmplY3QiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbE9iamVjdCksIChpbnRwdHJf
dCkgKDApIH0gfSwKKyAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxXcmFwcGVyIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxXcmFwcGVyKSwgKGludHB0cl90KSAo
MCkgfSB9LAorICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlV3JhcHBlciIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVyKSwg
KGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlV3Jh
cHBlcklzTnVsbCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFs
TnVsbGFibGVXcmFwcGVySXNOdWxsKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgIm1ldGhv
ZFdpdGhPcHRpb25hbFhQYXRoTlNSZXNvbHZlciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25f
bWV0aG9kV2l0aE9wdGlvbmFsWFBhdGhOU1Jlc29sdmVyKSwgKGludHB0cl90KSAoMCkgfSB9LAor
ICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbFJlY29yZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25fbWV0aG9kV2l0aE9wdGlvbmFsUmVjb3JkKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsg
Im1ldGhvZFdpdGhPcHRpb25hbFByb21pc2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21l
dGhvZFdpdGhPcHRpb25hbFByb21pc2UpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAibWV0
aG9kV2l0aENhbGxiYWNrSW50ZXJmYWNlQXJnIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9t
ZXRob2RXaXRoQ2FsbGJhY2tJbnRlcmZhY2VBcmcpLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAg
eyAibWV0aG9kV2l0aE51bGxhYmxlQ2FsbGJhY2tJbnRlcmZhY2VBcmciLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhOdWxsYWJsZUNhbGxiYWNrSW50ZXJmYWNlQXJnKSwgKGlu
dHB0cl90KSAoMSkgfSB9LAorICAgIHsgIm1ldGhvZFdpdGhOb25DYWxsYmFja0ludGVyZmFjZUFy
Z0FuZENhbGxiYWNrSW50ZXJmYWNlQXJnIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRo
b2RXaXRoTm9uQ2FsbGJhY2tJbnRlcmZhY2VBcmdBbmRDYWxsYmFja0ludGVyZmFjZUFyZyksIChp
bnRwdHJfdCkgKDIpIH0gfSwKKyAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxDYWxsYmFja0ludGVy
ZmFjZUFyZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpG
dW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVG
dW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsQ2Fs
bGJhY2tJbnRlcmZhY2VBcmcpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAibWV0aG9kV2l0
aE9wdGlvbmFsTnVsbGFibGVDYWxsYmFja0ludGVyZmFjZUFyZyIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVDYWxsYmFja0ludGVyZmFjZUFyZyks
IChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJtZXRob2RXaXRoQ2FsbGJhY2tGdW5jdGlvbkFy
ZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlv
biksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlv
bj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aENhbGxiYWNrRnVuY3Rpb25B
cmcpLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAibWV0aG9kV2l0aE51bGxhYmxlQ2FsbGJh
Y2tGdW5jdGlvbkFyZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdO
YXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE51bGxh
YmxlQ2FsbGJhY2tGdW5jdGlvbkFyZyksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7ICJtZXRo
b2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0Z1bmN0aW9uQXJnIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0Z1bmN0aW9u
QXJnKSwgKGludHB0cl90KSAoMikgfSB9LAorICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbENhbGxi
YWNrRnVuY3Rpb25BcmciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRp
b25hbENhbGxiYWNrRnVuY3Rpb25BcmcpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAibWV0
aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVDYWxsYmFja0Z1bmN0aW9uQXJnIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZUNhbGxiYWNrRnVuY3Rpb25B
cmcpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCi0gICAgeyAi
Y29uZGl0aW9uYWxNZXRob2QxIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFs
TWV0aG9kMSksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJjb25kaXRpb25hbE1ldGhvZDEi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24p
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2NvbmRpdGlvbmFsTWV0aG9kMSksIChpbnRwdHJf
dCkgKDApIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwK
ICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUoQ29uZGl0aW9uMikKLSAg
ICB7ICJjb25kaXRpb25hbE1ldGhvZDIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0
aW9uYWxNZXRob2QyKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgImNvbmRpdGlvbmFsTWV0
aG9kMiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5j
dGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5j
dGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY29uZGl0aW9uYWxNZXRob2QyKSwgKGlu
dHB0cl90KSAoMCkgfSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAg
fSB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24y
KQotICAgIHsgImNvbmRpdGlvbmFsTWV0aG9kMyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25D
b25kaXRpb25hbE1ldGhvZDMpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAiY29uZGl0aW9u
YWxNZXRob2QzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jb25kaXRpb25hbE1ldGhvZDMp
LCAoaW50cHRyX3QpICgwKSB9IH0sCiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIHsg
MCwgMCB9IH0sCiAjZW5kaWYKLSAgICB7ICJvdmVybG9hZGVkTWV0aG9kIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAg
eyAib3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlciIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyKSwgKGludHB0
cl90KSAoMSkgfSB9LAotICAgIHsgIm92ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vpc2hpbmdV
bmlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5j
dGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5j
dGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rp
bmd1aXNoaW5nVW5pb24pLCAoaW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAib3ZlcmxvYWRlZE1l
dGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T3ZlcmxvYWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnMpLCAoaW50cHRyX3QpICgx
KSB9IH0sCi0gICAgeyAib3ZlcmxvYWRlZE1ldGhvZFdpdGhOb25EaXN0aW5ndWlzaGluZ1VuaW9u
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoTm9uRGlzdGlu
Z3Vpc2hpbmdVbmlvbiksIChpbnRwdHJfdCkgKDIpIH0gfSwKLSAgICB7ICJvdmVybG9hZFdpdGhO
dWxsYWJsZVVuaW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxh
YmxlVW5pb24pLCAoaW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAib3ZlcmxvYWRXaXRoT3B0aW9u
YWxVbmlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpG
dW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVG
dW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhPcHRpb25hbFVu
aW9uKSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgIm92ZXJsb2FkV2l0aE51bGxhYmxlTm9u
RGlzdGluZ3Vpc2hpbmdQYXJhbWV0ZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRXaXRoTnVsbGFibGVOb25EaXN0aW5ndWlzaGluZ1BhcmFtZXRlciksIChpbnRwdHJfdCkgKDIp
IH0gfSwKLSAgICB7ICJjbGFzc01ldGhvZFdpdGhDbGFtcCIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcCksIChpbnRwdHJfdCkgKDIpIH0gfSwKLSAgICB7ICJj
bGFzc01ldGhvZFdpdGhDbGFtcE9uT3B0aW9uYWwiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
Q2xhc3NNZXRob2RXaXRoQ2xhbXBPbk9wdGlvbmFsKSwgKGludHB0cl90KSAoMCkgfSB9LAotICAg
IHsgImNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25DbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2UpLCAoaW50cHRyX3QpICgyKSB9IH0sCi0gICAg
eyAiY2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlT25PcHRpb25hbCIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2VPbk9wdGlvbmFsKSwgKGludHB0
cl90KSAoMCkgfSB9LAotICAgIHsgIm1ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5jZSIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2UpLCAo
aW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAic3RyaW5nQXJyYXlGdW5jdGlvbiIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0aW9uKSwgKGludHB0cl90KSAoMSkgfSB9
LAotICAgIHsgImRvbVN0cmluZ0xpc3RGdW5jdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Eb21TdHJpbmdMaXN0RnVuY3Rpb24pLCAoaW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAib3Bl
cmF0aW9uV2l0aE9wdGlvbmFsVW5pb25QYXJhbWV0ZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3BlcmF0aW9uV2l0aE9wdGlvbmFsVW5pb25QYXJhbWV0ZXIpLCAoaW50cHRyX3QpICgwKSB9
IH0sCi0gICAgeyAibWV0aG9kV2l0aEFuZFdpdGhvdXROdWxsYWJsZVNlcXVlbmNlIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVTZXF1ZW5jZSks
IChpbnRwdHJfdCkgKDIpIH0gfSwKLSAgICB7ICJnZXRFbGVtZW50QnlJZCIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZCksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7
ICJnZXRTVkdEb2N1bWVudCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxS
YXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRTVkdEb2N1bWVu
dCksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJjb252ZXJ0MSIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25Db252ZXJ0MSksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJjb252ZXJ0
MiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlv
biksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlv
bj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MiksIChpbnRwdHJfdCkgKDEpIH0g
fSwKLSAgICB7ICJjb252ZXJ0MyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0Myks
IChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJjb252ZXJ0NCIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25Db252ZXJ0NCksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJtdXRhYmxlUG9p
bnRGdW5jdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NdXRhYmxlUG9pbnRGdW5jdGlv
biksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJvcmFuZ2UiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3JhbmdlKSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgInZhcmlhZGljU3Ry
aW5nTWV0aG9kIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljU3RyaW5nTWV0aG9k
KSwgKGludHB0cl90KSAoMSkgfSB9LAotICAgIHsgInZhcmlhZGljRG91YmxlTWV0aG9kIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljRG91YmxlTWV0aG9kKSwgKGludHB0cl90KSAo
MSkgfSB9LAotICAgIHsgInZhcmlhZGljTm9kZU1ldGhvZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25WYXJpYWRpY05vZGVNZXRob2QpLCAoaW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAidmFy
aWFkaWNVbmlvbk1ldGhvZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxS
YXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY1VuaW9u
TWV0aG9kKSwgKGludHB0cl90KSAoMSkgfSB9LAotICAgIHsgImFueSIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25BbnkpLCAoaW50cHRyX3QpICgyKSB9IH0sCi0gICAgeyAidGVzdFByb21pc2VG
dW5jdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpG
dW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVG
dW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uKSwg
KGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgInRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRmxvYXRB
cmd1bWVudCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpG
dW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVG
dW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0
aEZsb2F0QXJndW1lbnQpLCAoaW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAidGVzdFByb21pc2VG
dW5jdGlvbldpdGhFeGNlcHRpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21p
c2VGdW5jdGlvbldpdGhFeGNlcHRpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAidGVz
dFByb21pc2VGdW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50Iiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoT3B0aW9uYWxJbnRBcmd1bWVudCksIChp
bnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJ0ZXN0UHJvbWlzZU92ZXJsb2FkZWRGdW5jdGlvbiIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZU92ZXJsb2FkZWRGdW5jdGlvbiks
IChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJ0ZXN0Q3VzdG9tUHJvbWlzZUZ1bmN0aW9uIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RDdXN0b21Qcm9taXNlRnVuY3Rpb24pLCAoaW50
cHRyX3QpICgwKSB9IH0sCi0gICAgeyAidGVzdEN1c3RvbVJldHVybnNPd25Qcm9taXNlRnVuY3Rp
b24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rp
b24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rp
b24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdEN1c3RvbVJldHVybnNPd25Qcm9taXNl
RnVuY3Rpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAidGVzdFJldHVybnNPd25Qcm9t
aXNlQW5kUHJvbWlzZVByb3h5RnVuY3Rpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVz
dFJldHVybnNPd25Qcm9taXNlQW5kUHJvbWlzZVByb3h5RnVuY3Rpb24pLCAoaW50cHRyX3QpICgw
KSB9IH0sCisgICAgeyAib3ZlcmxvYWRlZE1ldGhvZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25fb3ZlcmxvYWRlZE1ldGhvZCksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJvdmVybG9h
ZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bl9vdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyKSwgKGludHB0cl90KSAoMSkg
fSB9LAorICAgIHsgIm92ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vpc2hpbmdVbmlvbiIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlzaGlu
Z1VuaW9uKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgIm92ZXJsb2FkZWRNZXRob2RXaXRo
MkRpc3Rpbmd1aXNoaW5nVW5pb25zIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9h
ZGVkTWV0aG9kV2l0aDJEaXN0aW5ndWlzaGluZ1VuaW9ucyksIChpbnRwdHJfdCkgKDEpIH0gfSwK
KyAgICB7ICJvdmVybG9hZGVkTWV0aG9kV2l0aE5vbkRpc3Rpbmd1aXNoaW5nVW5pb24iLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hp
bmdVbmlvbiksIChpbnRwdHJfdCkgKDIpIH0gfSwKKyAgICB7ICJvdmVybG9hZFdpdGhOdWxsYWJs
ZVVuaW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1
bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZFdpdGhOdWxsYWJsZVVu
aW9uKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgIm92ZXJsb2FkV2l0aE9wdGlvbmFsVW5p
b24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rp
b24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rp
b24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkV2l0aE9wdGlvbmFsVW5pb24p
LCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAib3ZlcmxvYWRXaXRoTnVsbGFibGVOb25EaXN0
aW5ndWlzaGluZ1BhcmFtZXRlciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRX
aXRoTnVsbGFibGVOb25EaXN0aW5ndWlzaGluZ1BhcmFtZXRlciksIChpbnRwdHJfdCkgKDIpIH0g
fSwKKyAgICB7ICJjbGFzc01ldGhvZFdpdGhDbGFtcCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25fY2xhc3NNZXRob2RXaXRoQ2xhbXApLCAoaW50cHRyX3QpICgyKSB9IH0sCisgICAgeyAiY2xh
c3NNZXRob2RXaXRoQ2xhbXBPbk9wdGlvbmFsIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9j
bGFzc01ldGhvZFdpdGhDbGFtcE9uT3B0aW9uYWwpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAg
eyAiY2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bl9jbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2UpLCAoaW50cHRyX3QpICgyKSB9IH0sCisgICAg
eyAiY2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlT25PcHRpb25hbCIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25fY2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlT25PcHRpb25hbCksIChpbnRw
dHJfdCkgKDApIH0gfSwKKyAgICB7ICJtZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2UiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5jZSks
IChpbnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7ICJzdHJpbmdBcnJheUZ1bmN0aW9uIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9zdHJpbmdBcnJheUZ1bmN0aW9uKSwgKGludHB0cl90KSAoMSkg
fSB9LAorICAgIHsgImRvbVN0cmluZ0xpc3RGdW5jdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25fZG9tU3RyaW5nTGlzdEZ1bmN0aW9uKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsg
Im9wZXJhdGlvbldpdGhPcHRpb25hbFVuaW9uUGFyYW1ldGVyIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbl9vcGVyYXRpb25XaXRoT3B0aW9uYWxVbmlvblBhcmFtZXRlciksIChpbnRwdHJfdCkg
KDApIH0gfSwKKyAgICB7ICJtZXRob2RXaXRoQW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2UiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVTZXF1
ZW5jZSksIChpbnRwdHJfdCkgKDIpIH0gfSwKKyAgICB7ICJnZXRFbGVtZW50QnlJZCIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25fZ2V0RWxlbWVudEJ5SWQpLCAoaW50cHRyX3QpICgxKSB9IH0s
CisgICAgeyAiZ2V0U1ZHRG9jdW1lbnQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2dldFNW
R0RvY3VtZW50KSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgImNvbnZlcnQxIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9jb252ZXJ0MSksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7
ICJjb252ZXJ0MiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY29udmVydDIpLCAoaW50cHRy
X3QpICgxKSB9IH0sCisgICAgeyAiY29udmVydDMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X2NvbnZlcnQzKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgImNvbnZlcnQ0Iiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9jb252ZXJ0NCksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7
ICJtdXRhYmxlUG9pbnRGdW5jdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbXV0YWJs
ZVBvaW50RnVuY3Rpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAib3JhbmdlIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vcmFuZ2UpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAg
eyAidmFyaWFkaWNTdHJpbmdNZXRob2QiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3Zhcmlh
ZGljU3RyaW5nTWV0aG9kKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgInZhcmlhZGljRG91
YmxlTWV0aG9kIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl92YXJpYWRpY0RvdWJsZU1ldGhv
ZCksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7ICJ2YXJpYWRpY05vZGVNZXRob2QiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uX3ZhcmlhZGljTm9kZU1ldGhvZCksIChpbnRwdHJfdCkgKDEp
IH0gfSwKKyAgICB7ICJ2YXJpYWRpY1VuaW9uTWV0aG9kIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbl92YXJpYWRpY1VuaW9uTWV0aG9kKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgImFu
eSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlv
biksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlv
bj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fYW55KSwgKGludHB0cl90KSAoMikgfSB9LAor
ICAgIHsgInRlc3RQcm9taXNlRnVuY3Rpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3Rl
c3RQcm9taXNlRnVuY3Rpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAidGVzdFByb21p
c2VGdW5jdGlvbldpdGhGbG9hdEFyZ3VtZW50Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl90
ZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEZsb2F0QXJndW1lbnQpLCAoaW50cHRyX3QpICgxKSB9IH0s
CisgICAgeyAidGVzdFByb21pc2VGdW5jdGlvbldpdGhFeGNlcHRpb24iLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uX3Rlc3RQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uKSwgKGludHB0cl90
KSAoMCkgfSB9LAorICAgIHsgInRlc3RQcm9taXNlRnVuY3Rpb25XaXRoT3B0aW9uYWxJbnRBcmd1
bWVudCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5j
dGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5j
dGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fdGVzdFByb21pc2VGdW5jdGlvbldpdGhP
cHRpb25hbEludEFyZ3VtZW50KSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgInRlc3RQcm9t
aXNlT3ZlcmxvYWRlZEZ1bmN0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl90ZXN0UHJv
bWlzZU92ZXJsb2FkZWRGdW5jdGlvbiksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7ICJ0ZXN0
Q3VzdG9tUHJvbWlzZUZ1bmN0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl90ZXN0Q3Vz
dG9tUHJvbWlzZUZ1bmN0aW9uKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgInRlc3RDdXN0
b21SZXR1cm5zT3duUHJvbWlzZUZ1bmN0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl90
ZXN0Q3VzdG9tUmV0dXJuc093blByb21pc2VGdW5jdGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwK
KyAgICB7ICJ0ZXN0UmV0dXJuc093blByb21pc2VBbmRQcm9taXNlUHJveHlGdW5jdGlvbiIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fdGVzdFJldHVybnNPd25Qcm9taXNlQW5kUHJvbWlzZVBy
b3h5RnVuY3Rpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCiAjaWYgRU5BQkxFKENPTkRJVElPTjEp
IHx8IEVOQUJMRShDT05ESVRJT04yKQotICAgIHsgImNvbmRpdGlvbmFsT3ZlcmxvYWQiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxPdmVybG9hZCksIChpbnRwdHJfdCkgKDEp
IH0gfSwKKyAgICB7ICJjb25kaXRpb25hbE92ZXJsb2FkIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbl9jb25kaXRpb25hbE92ZXJsb2FkKSwgKGludHB0cl90KSAoMSkgfSB9LAogI2Vsc2UKICAg
ICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCi0gICAgeyAic2luZ2xl
Q29uZGl0aW9uYWxPdmVybG9hZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TaW5nbGVDb25k
aXRpb25hbE92ZXJsb2FkKSwgKGludHB0cl90KSAoMSkgfSB9LAotICAgIHsgImF0dGFjaFNoYWRv
d1Jvb3QiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVu
Y3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQXR0YWNoU2hhZG93Um9vdCksIChpbnRw
dHJfdCkgKDEpIH0gfSwKLSAgICB7ICJvcGVyYXRpb25XaXRoRXh0ZXJuYWxEaWN0aW9uYXJ5UGFy
YW1ldGVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1
bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9wZXJhdGlvbldpdGhFeHRlcm5hbERp
Y3Rpb25hcnlQYXJhbWV0ZXIpLCAoaW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAiYnVmZmVyU291
cmNlUGFyYW1ldGVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ1ZmZlclNvdXJjZVBhcmFt
ZXRlciksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJsZWdhY3lDYWxsZXJOYW1lZCIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25MZWdhY3lDYWxsZXJOYW1lZCksIChpbnRwdHJfdCkgKDEp
IH0gfSwKLSAgICB7ICJ0ZXN0UmV0dXJuVmFsdWVPcHRpbWl6YXRpb24iLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uVGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9uKSwgKGludHB0cl90KSAoMikg
fSB9LAotICAgIHsgInRlc3RSZXR1cm5WYWx1ZU9wdGltaXphdGlvbldpdGhFeGNlcHRpb24iLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9uV2l0aEV4
Y2VwdGlvbiksIChpbnRwdHJfdCkgKDIpIH0gfSwKLSAgICB7ICJjb25kaXRpb25hbGx5RXhwb3Nl
ZFRvV2luZG93RnVuY3Rpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxs
eUV4cG9zZWRUb1dpbmRvd0Z1bmN0aW9uKSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgImNv
bmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJGdW5jdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Db25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyRnVuY3Rpb24pLCAoaW50cHRyX3QpICgw
KSB9IH0sCi0gICAgeyAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckZ1bmN0
aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0
aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5k
b3dBbmRXb3JrZXJGdW5jdGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJzaW5nbGVD
b25kaXRpb25hbE92ZXJsb2FkIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9zaW5nbGVDb25k
aXRpb25hbE92ZXJsb2FkKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgImF0dGFjaFNoYWRv
d1Jvb3QiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVu
Y3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2F0dGFjaFNoYWRvd1Jvb3QpLCAoaW50
cHRyX3QpICgxKSB9IH0sCisgICAgeyAib3BlcmF0aW9uV2l0aEV4dGVybmFsRGljdGlvbmFyeVBh
cmFtZXRlciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpG
dW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVG
dW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3BlcmF0aW9uV2l0aEV4dGVybmFs
RGljdGlvbmFyeVBhcmFtZXRlciksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7ICJidWZmZXJT
b3VyY2VQYXJhbWV0ZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2J1ZmZlclNvdXJjZVBh
cmFtZXRlciksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7ICJsZWdhY3lDYWxsZXJOYW1lZCIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbGVnYWN5Q2FsbGVyTmFtZWQpLCAoaW50cHRyX3Qp
ICgxKSB9IH0sCisgICAgeyAidGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9uIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl90ZXN0UmV0dXJuVmFsdWVPcHRpbWl6YXRpb24pLCAoaW50cHRyX3Qp
ICgyKSB9IH0sCisgICAgeyAidGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9uV2l0aEV4Y2VwdGlv
biIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlv
biksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlv
bj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fdGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9u
V2l0aEV4Y2VwdGlvbiksIChpbnRwdHJfdCkgKDIpIH0gfSwKKyAgICB7ICJjb25kaXRpb25hbGx5
RXhwb3NlZFRvV2luZG93RnVuY3Rpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2NvbmRp
dGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dGdW5jdGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAg
ICB7ICJjb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyRnVuY3Rpb24iLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uX2NvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJGdW5jdGlvbiksIChpbnRw
dHJfdCkgKDApIH0gfSwKKyAgICB7ICJjb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29y
a2VyRnVuY3Rpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2NvbmRpdGlvbmFsbHlFeHBv
c2VkVG9XaW5kb3dBbmRXb3JrZXJGdW5jdGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwKICAgICB7
ICItbGVhZGluZy1oeXBoZW4tZnVuY3Rpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2Rh
c2hfbGVhZGluZ19kYXNoX2h5cGhlbl9kYXNoX2Z1bmN0aW9uKSwgKGludHB0cl90KSAoMCkgfSB9
LAotICAgIHsgInRyYWlsaW5nLWh5cGhlbi1mdW5jdGlvbi0iLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uVHJhaWxpbmdfZGFzaF9oeXBoZW5fZGFzaF9mdW5jdGlvbl9kYXNoXyksIChpbnRwdHJf
dCkgKDApIH0gfSwKLSAgICB7ICJsZWFkaW5nX3VuZGVyc2NvcmVfZnVuY3Rpb24iLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTGVhZGluZ191bmRlcnNjb3JlX2Z1bmN0aW9uKSwgKGludHB0cl90
KSAoMCkgfSB9LAorICAgIHsgInRyYWlsaW5nLWh5cGhlbi1mdW5jdGlvbi0iLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX3RyYWlsaW5nX2Rhc2hfaHlwaGVuX2Rhc2hfZnVuY3Rpb25fZGFzaF8p
LCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAibGVhZGluZ191bmRlcnNjb3JlX2Z1bmN0aW9u
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9sZWFkaW5nX3VuZGVyc2NvcmVfZnVuY3Rpb24p
LCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAiX2RvdWJsZV9sZWFkaW5nX3VuZGVyc2NvcmVf
ZnVuY3Rpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZl
RnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2RvdWJsZV9sZWFkaW5nX3VuZGVy
c2NvcmVfZnVuY3Rpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAidHJhaWxpbmdfdW5k
ZXJzY29yZV9mdW5jdGlvbl8iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVHJhaWxpbmdfdW5k
ZXJzY29yZV9mdW5jdGlvbl8pLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAidG9TdHJpbmci
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24p
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcpLCAoaW50cHRyX3QpICgwKSB9IH0s
CisgICAgeyAidHJhaWxpbmdfdW5kZXJzY29yZV9mdW5jdGlvbl8iLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uX3RyYWlsaW5nX3VuZGVyc2NvcmVfZnVuY3Rpb25fKSwgKGludHB0cl90KSAoMCkg
fSB9LAorICAgIHsgInRvU3RyaW5nIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl90b1N0cmlu
ZyksIChpbnRwdHJfdCkgKDApIH0gfSwKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKICAgICB7ICJD
T05ESVRJT05BTF9DT05TVCIsIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkNvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIHsgKGxvbmcgbG9uZykoMCkgfSB9LAogI2Vs
c2UKQEAgLTI0NTMsOCArMjQ1Myw4IEBAIHZvaWQgSlNUZXN0T2JqUHJvdG90eXBlOjpmaW5pc2hD
cmVhdGlvbigKICAgICB9CiAgICAgaWYgKGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgJiYg
c3RydWN0dXJlKCktPmlzRGljdGlvbmFyeSgpKQogICAgICAgICBmbGF0dGVuRGljdGlvbmFyeU9i
amVjdCh2bSk7Ci0gICAgcHV0RGlyZWN0KHZtLCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+
KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKS5wcml2YXRlTWV0aG9kUHJpdmF0ZU5hbWUo
KSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QoKSwgMCwgU3RyaW5nKCksIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUHJpdmF0ZU1ldGhvZCksIEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwotICAg
IHB1dERpcmVjdCh2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRh
KS0+YnVpbHRpbk5hbWVzKCkucHVibGljQW5kUHJpdmF0ZU1ldGhvZFByaXZhdGVOYW1lKCksIEpT
RnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0KCksIDAsIFN0cmluZygpLCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblB1YmxpY0FuZFByaXZhdGVNZXRob2QpLCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsK
KyAgICBwdXREaXJlY3Qodm0sIHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50
RGF0YSktPmJ1aWx0aW5OYW1lcygpLnByaXZhdGVNZXRob2RQcml2YXRlTmFtZSgpLCBKU0Z1bmN0
aW9uOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCgpLCAwLCBTdHJpbmcoKSwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25fcHJpdmF0ZU1ldGhvZCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOworICAgIHB1dERpcmVj
dCh2bSwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRp
bk5hbWVzKCkucHVibGljQW5kUHJpdmF0ZU1ldGhvZFByaXZhdGVOYW1lKCksIEpTRnVuY3Rpb246
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0KCksIDAsIFN0cmluZygpLCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbl9wdWJsaWNBbmRQcml2YXRlTWV0aG9kKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiAgICAgcHV0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJvbCwgZ2xvYmFsT2JqZWN0
KCktPmFycmF5UHJvdG90eXBlKCktPmdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkudmFsdWVzUHJpdmF0ZU5hbWUoKSksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIGFkZFZhbHVlSXRlcmFibGVN
ZXRob2RzKCpnbG9iYWxPYmplY3QoKSwgKnRoaXMpOwogICAgIEpTT2JqZWN0JiB1bnNjb3BhYmxl
cyA9ICpjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QoKS0+dm0oKSwgZ2xvYmFsT2Jq
ZWN0KCktPm51bGxQcm90b3R5cGVPYmplY3RTdHJ1Y3R1cmUoKSk7CkBAIC0yNjQxLDcgKzI2NDEs
NyBAQCBKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQ29uCiAgICAgcmV0dXJu
IHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3Rvciwg
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0T2JqUmVhZE9ubHlMb25nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdE9ial9yZWFkT25seUxvbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0g
PSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI2NDksMTIgKzI2NDksMTIgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5TAogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBpbXBsLnJlYWRPbmx5TG9uZ0F0dHIoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdE9ialJlYWRPbmx5TG9uZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQor
SlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9yZWFkT25seUxvbmdBdHRyLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OmdldDxqc1Rlc3RPYmpSZWFkT25seUxvbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVhZE9ubHlM
b25nQXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVz
dE9ial9yZWFkT25seUxvbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVhZE9ubHlMb25nQXR0ciIp
OwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlTdHJpbmdBdHRy
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRo
aXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqX3JlYWRPbmx5U3RyaW5n
QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2Jq
JiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yNjYyLDEyICsyNjYyLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpS
ZWFkT25seVMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9N
U3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnJlYWRPbmx5U3Ry
aW5nQXR0cigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqUmVh
ZE9ubHlTdHJpbmdBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RPYmpfcmVhZE9ubHlTdHJpbmdBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpS
ZWFkT25seVN0cmluZ0F0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWFkT25seVN0cmluZ0F0dHIiKTsK
KyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpfcmVhZE9u
bHlTdHJpbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVhZE9ubHlTdHJpbmdBdHRyIik7CiB9CiAK
LXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBdHRyR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmpl
Y3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqX3JlYWRPbmx5VGVzdE9iakF0dHJH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhp
c09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MjY3NSwzNiArMjY3NSwzNiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVhZE9u
bHlUCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFj
ZTxUZXN0T2JqPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0
KCksIHRocm93U2NvcGUsIGltcGwucmVhZE9ubHlUZXN0T2JqQXR0cigpKSkpOwogfQogCi1KU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqUmVhZE9ubHlUZXN0T2JqQXR0ciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX3JlYWRP
bmx5VGVzdE9iakF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialJlYWRPbmx5VGVzdE9iakF0dHJHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJyZWFkT25seVRlc3RPYmpBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX3JlYWRPbmx5VGVzdE9iakF0dHJHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJyZWFkT25seVRlc3RPYmpBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1JlYWRPbmx5TG9uZ0F0dHJHZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0T2JqQ29uc3RydWN0b3Jfc3RhdGljUmVhZE9ubHlMb25nQXR0ckdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBUZXN0T2JqOjpzdGF0
aWNSZWFkT25seUxvbmdBdHRyKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1JlYWRPbmx5TG9uZ0F0dHIsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbnN0cnVjdG9yX3N0
YXRpY1JlYWRPbmx5TG9uZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0U3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9y
U3RhdGljUmVhZE9ubHlMb25nQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgInN0YXRpY1JlYWRPbmx5TG9uZ0F0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OmdldFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3Rvcl9zdGF0aWNSZWFkT25s
eUxvbmdBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3RhdGlj
UmVhZE9ubHlMb25nQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2Jq
Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9y
X3N0YXRpY1N0cmluZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBUZXN0T2JqOjpzdGF0aWNTdHJpbmdBdHRyKCkpKSk7CiB9
CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0
cmluZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdE9iakNvbnN0cnVjdG9yX3N0YXRpY1N0cmluZ0F0dHIsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0U3RhdGljPGpz
VGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgInN0YXRpY1N0cmluZ0F0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OmdldFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3Rvcl9zdGF0aWNT
dHJpbmdBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3RhdGlj
U3RyaW5nQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ29uc3Ry
dWN0b3JTdGF0aWNTdHJpbmdBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakNv
bnN0cnVjdG9yX3N0YXRpY1N0cmluZ0F0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTI3MTYsMjMgKzI3MTYsMjMgQEAgc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdE9iakNvbnN0cnVjdAogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RPYmpDb25zdHJ1Y3Rvcl9zdGF0aWNTdHJpbmdBdHRyLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdE9iaj46OnNldFN0YXRpYzxzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0
dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
InN0YXRpY1N0cmluZ0F0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OnNldFN0YXRpYzxzZXRKU1Rlc3RPYmpDb25zdHJ1Y3Rvcl9zdGF0aWNTdHJpbmdBdHRyU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdGF0aWNT
dHJpbmdBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1
Y3RvclRlc3RTdWJPYmpHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3Qp
CitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JfVGVzdFN1Yk9iakdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURf
UEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIEpTVGVzdFN1Yk9iajo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2Jq
Q29uc3RydWN0b3JUZXN0U3ViT2JqLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDb25zdHJ1Y3Rvcl9UZXN0U3ViT2JqLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldFN0
YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvclRlc3RTdWJPYmpHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U3ViT2JqIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpnZXRTdGF0aWM8anNUZXN0T2JqQ29uc3RydWN0b3JfVGVzdFN1Yk9iakdl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RTdWJPYmoiKTsKIH0K
IAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN0YXRpY1Jl
YWRvbmx5T2JqR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0KQorc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yX3Rlc3RTdGF0aWNSZWFkb25s
eU9iakdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCkKIHsKICAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjc0NCwxMiArMjc0NCwxMiBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0CiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4obGV4aWNh
bEdsb2JhbE9iamVjdCwgKmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgdGhyb3dTY29wZSwgVGVzdE9iajo6dGVzdFN0YXRpY1JlYWRvbmx5T2JqKGRvY3Vt
ZW50KSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbnN0cnVj
dG9yVGVzdFN0YXRpY1JlYWRvbmx5T2JqLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDb25zdHJ1Y3Rvcl90ZXN0U3RhdGljUmVhZG9ubHlP
YmosIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0T2JqPjo6Z2V0U3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN0YXRpY1JlYWRvbmx5
T2JqR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGVzdFN0YXRpY1Jl
YWRvbmx5T2JqIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXRTdGF0
aWM8anNUZXN0T2JqQ29uc3RydWN0b3JfdGVzdFN0YXRpY1JlYWRvbmx5T2JqR2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGVzdFN0YXRpY1JlYWRvbmx5T2JqIik7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpFbnVtQXR0ckdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQorc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial9lbnVtQXR0ckdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQogewogICAgIGF1
dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNzU3LDEyICsyNzU3LDEyIEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpFbnVtQXR0ckcKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRW51bWVyYXRpb248VGVzdE9iajo6RW51bVR5
cGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmVudW1BdHRyKCkpKSk7
CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpFbnVtQXR0ciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX2VudW1B
dHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdE9iaj46OmdldDxqc1Rlc3RPYmpFbnVtQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImVudW1BdHRy
Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX2Vu
dW1BdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZW51bUF0dHIiKTsKIH0KIAotc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdE9iakVudW1BdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqX2VudW1BdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUp
CiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI3NzgsMTIg
KzI3NzgsMTIgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakVudW1BdHRyUwogICAg
IHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2Jq
RW51bUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklO
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9lbnVtQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpzZXQ8c2V0SlNUZXN0T2JqRW51bUF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImVudW1BdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqX2VudW1BdHRyU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJlbnVtQXR0ciIpOwogfQog
Ci1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQnl0ZUF0dHJHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKK3N0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpfYnl0ZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBhdXRv
JiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjc5MSwxMiArMjc5MSwxMiBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQnl0ZUF0dHJHCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEJ5dGU+KGxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIGltcGwuYnl0ZUF0dHIoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzVGVzdE9iakJ5dGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfYnl0ZUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakJ5dGVB
dHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiYnl0ZUF0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpfYnl0ZUF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJieXRl
QXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQnl0ZUF0dHJTZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09i
amVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpfYnl0
ZUF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9i
aiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMjgwOSwxMiArMjgwOSwxMiBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0T2JqQnl0ZUF0dHJTCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpCeXRlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2Jq
X2J5dGVBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpCeXRlQXR0clNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYnl0
ZUF0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rl
c3RPYmpfYnl0ZUF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgImJ5dGVBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RPYmpPY3RldEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTVGVzdE9iaiYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpf
b2N0ZXRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3RPYmomIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTI4MjIsMTIgKzI4MjIsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dE9iak9jdGV0QXR0cgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExPY3RldD4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5vY3RldEF0dHIo
KSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iak9jdGV0QXR0ciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2Jq
X29jdGV0QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqT2N0ZXRBdHRyR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
b2N0ZXRBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNU
ZXN0T2JqX29jdGV0QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm9jdGV0QXR0ciIpOwogfQogCi1zdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqT2N0ZXRBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFs
dWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqX29jdGV0QXR0clNldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBK
U1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yODQwLDEyICsyODQwLDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpP
Y3RldEF0dHIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE9iak9jdGV0QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX29jdGV0QXR0ciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqT2N0ZXRBdHRyU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJvY3RldEF0dHIiKTsKKyAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfb2N0ZXRB
dHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJvY3RldEF0dHIiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialNob3J0
QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2Jq
JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial9zaG9ydEF0dHJH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhp
c09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
Mjg1MywxMiArMjg1MywxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqU2hvcnRB
dHRyCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFNob3J0Pihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnNob3J0QXR0cigpKSkpOwogfQog
Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqU2hvcnRBdHRyLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfc2hvcnRBdHRy
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OmdldDxqc1Rlc3RPYmpTaG9ydEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzaG9ydEF0dHIi
KTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpfc2hv
cnRBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2hvcnRBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RPYmpTaG9ydEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpfc2hvcnRBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI4NzEs
MTIgKzI4NzEsMTIgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialNob3J0QXR0cgog
ICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
T2JqU2hvcnRBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfc2hvcnRBdHRyLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OnNldDxzZXRKU1Rlc3RPYmpTaG9ydEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInNob3J0QXR0ciIpOworICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial9zaG9ydEF0dHJTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInNob3J0QXR0
ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ2xhbXBlZFNob3J0QXR0
ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0
aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial9jbGFtcGVkU2hvcnRB
dHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmom
IHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTI4ODQsMTIgKzI4ODQsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNs
YW1wZWRTaAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExDbGFt
cEFkYXB0b3I8SURMU2hvcnQ+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBs
LmNsYW1wZWRTaG9ydEF0dHIoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdE9iakNsYW1wZWRTaG9ydEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9jbGFtcGVkU2hvcnRBdHRyLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rl
c3RPYmpDbGFtcGVkU2hvcnRBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY2xhbXBlZFNob3J0QXR0ciIp
OworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial9jbGFt
cGVkU2hvcnRBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY2xhbXBlZFNob3J0QXR0ciIpOwogfQogCi1z
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ2xhbXBlZFNob3J0QXR0clNldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBK
U1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ial9jbGFtcGVkU2hv
cnRBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RP
YmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI5MDIsMTIgKzI5MDIsMTIgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdE9iakNsYW1wZWRTaAogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVG
SU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQ2xhbXBlZFNob3J0QXR0ciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0T2JqX2NsYW1wZWRTaG9ydEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpT
VGVzdE9iakNsYW1wZWRTaG9ydEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgImNsYW1wZWRTaG9ydEF0dHIiKTsKKyAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfY2xhbXBlZFNob3J0QXR0clNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY2xh
bXBlZFNob3J0QXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqRW5m
b3JjZVJhbmdlU2hvcnRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
T2JqX2VuZm9yY2VSYW5nZVNob3J0QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yOTE1LDEyICsyOTE1LDEyIEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RPYmpFbmZvcmNlUmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMRW5mb3JjZVJhbmdlQWRhcHRvcjxJRExTaG9ydD4+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZW5mb3JjZVJhbmdlU2hvcnRBdHRyKCkpKSk7
CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9y
dEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdE9ial9lbmZvcmNlUmFuZ2VTaG9ydEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewot
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakVuZm9yY2VS
YW5nZVNob3J0QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImVuZm9yY2VSYW5nZVNob3J0QXR0ciIpOwor
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial9lbmZvcmNl
UmFuZ2VTaG9ydEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJlbmZvcmNlUmFuZ2VTaG9ydEF0dHIiKTsK
IH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0
clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0
aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9i
al9lbmZvcmNlUmFuZ2VTaG9ydEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjkzMywxMiArMjkzMywxMiBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqRW5mb3JjZVJhCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpFbmZvcmNlUmFu
Z2VTaG9ydEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RF
RklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9lbmZvcmNlUmFuZ2VTaG9ydEF0dHIsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0clNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZW5m
b3JjZVJhbmdlU2hvcnRBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpzZXQ8c2V0SlNUZXN0T2JqX2VuZm9yY2VSYW5nZVNob3J0QXR0clNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZW5mb3JjZVJhbmdlU2hvcnRB
dHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZFNob3J0
QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2Jq
JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial91bnNpZ25lZFNo
b3J0QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0
T2JqJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0yOTQ2LDEyICsyOTQ2LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RP
YmpVbnNpZ25lZFMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
VW5zaWduZWRTaG9ydD4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnNp
Z25lZFNob3J0QXR0cigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0
T2JqVW5zaWduZWRTaG9ydEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdE9ial91bnNpZ25lZFNob3J0QXR0ciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0
T2JqVW5zaWduZWRTaG9ydEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnNpZ25lZFNob3J0QXR0ciIp
OworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial91bnNp
Z25lZFNob3J0QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVuc2lnbmVkU2hvcnRBdHRyIik7CiB9CiAK
LXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0clNldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0
LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ial91bnNpZ25l
ZFNob3J0QXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNU
ZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yOTY0LDEyICsyOTY0LDEyIEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RPYmpVbnNpZ25lZFMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlND
X0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RPYmpfdW5zaWduZWRTaG9ydEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0
PHNldEpTVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ1bnNpZ25lZFNob3J0QXR0ciIpOworICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial91bnNpZ25lZFNo
b3J0QXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAidW5zaWduZWRTaG9ydEF0dHIiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdE9iakxvbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2Jq
X2xvbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3RPYmomIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTI5NzcsMTIgKzI5NzcsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dE9iakxvbmdBdHRyRwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmxvbmdBdHRyKCkp
KSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpMb25nQXR0ciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX2xv
bmdBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpMb25nQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImxvbmdB
dHRyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2Jq
X2xvbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibG9uZ0F0dHIiKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdE9iakxvbmdBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqX2xvbmdBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFs
dWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI5OTUs
MTIgKzI5OTUsMTIgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakxvbmdBdHRyUwog
ICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
T2JqTG9uZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RF
RklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9sb25nQXR0ciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpzZXQ8c2V0SlNUZXN0T2JqTG9uZ0F0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImxvbmdBdHRyIik7CisgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqX2xvbmdBdHRyU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJsb25nQXR0ciIpOwog
fQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTG9uZ0xvbmdBdHRyR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3Qp
CitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqX2xvbmdMb25nQXR0ckdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQog
ewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMDA4LDEyICsz
MDA4LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpMb25nTG9uZ0EKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZ0xvbmc+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubG9uZ0xvbmdBdHRyKCkpKSk7CiB9CiAKLUpT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpMb25nTG9uZ0F0dHIsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9sb25nTG9uZ0F0
dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakxvbmdMb25nQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImxvbmdM
b25nQXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVz
dE9ial9sb25nTG9uZ0F0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJsb25nTG9uZ0F0dHIiKTsKIH0KIAot
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakxvbmdMb25nQXR0clNldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1Zh
bHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ial9sb25nTG9uZ0F0dHJT
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhp
c09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMzAyNiwxMiArMzAyNiwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0T2JqTG9uZ0xvbmdBCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9s
b25nTG9uZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakxvbmdMb25n
QXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAibG9uZ0xvbmdBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+Ojpz
ZXQ8c2V0SlNUZXN0T2JqX2xvbmdMb25nQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibG9uZ0xvbmdBdHRyIik7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0ckdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQorc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial91bnNpZ25lZExvbmdMb25nQXR0ckdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0
KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMDM5LDEy
ICszMDM5LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZEwKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5zaWduZWRMb25nTG9u
Zz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnNpZ25lZExvbmdMb25n
QXR0cigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqVW5zaWdu
ZWRMb25nTG9uZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdE9ial91bnNpZ25lZExvbmdMb25nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2Jq
VW5zaWduZWRMb25nTG9uZ0F0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnNpZ25lZExvbmdMb25nQXR0
ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial91
bnNpZ25lZExvbmdMb25nQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVuc2lnbmVkTG9uZ0xvbmdBdHRy
Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpVbnNpZ25lZExvbmdMb25n
QXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2Jq
JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dE9ial91bnNpZ25lZExvbmdMb25nQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAg
IGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMDU3LDEyICszMDU3LDEy
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpVbnNpZ25lZEwKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialVuc2lnbmVk
TG9uZ0xvbmdBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfdW5zaWduZWRMb25nTG9uZ0F0dHIsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ1bnNp
Z25lZExvbmdMb25nQXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
c2V0PHNldEpTVGVzdE9ial91bnNpZ25lZExvbmdMb25nQXR0clNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidW5zaWduZWRMb25nTG9uZ0F0dHIi
KTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHJHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVj
dCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpfc3RyaW5nQXR0ckdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQog
ewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMDcwLDEyICsz
MDcwLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHQKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnN0cmluZ0F0dHIoKSkpKTsKIH0KIAotSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialN0cmluZ0F0dHIsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9zdHJpbmdBdHRyLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OmdldDxqc1Rlc3RPYmpTdHJpbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3RyaW5nQXR0ciIp
OworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial9zdHJp
bmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3RyaW5nQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0T2JqU3RyaW5nQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdE9ial9zdHJpbmdBdHRyU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUg
dmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMw
ODgsMTIgKzMwODgsMTIgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialN0cmluZ0F0
dAogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0T2JqU3RyaW5nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitK
U0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3N0cmluZ0F0dHIsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialN0cmluZ0F0dHJTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0cmluZ0F0dHIiKTsKKyAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfc3RyaW5nQXR0
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
c3RyaW5nQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqVXN2c3Ry
aW5nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0
T2JqJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial91c3ZzdHJp
bmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RP
YmomIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTMxMDEsMTIgKzMxMDEsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9i
alVzdnN0cmluZwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExV
U1ZTdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudXN2c3RyaW5n
QXR0cigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqVXN2c3Ry
aW5nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0T2JqX3VzdnN0cmluZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialVzdnN0cmluZ0F0dHJH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJ1c3ZzdHJpbmdBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX3VzdnN0cmluZ0F0dHJHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJ1c3ZzdHJpbmdBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpV
c3ZzdHJpbmdBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0T2JqX3VzdnN0cmluZ0F0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAg
ICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzExOSwxMiArMzExOSwx
MiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqVXN2c3RyaW5nCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpVc3ZzdHJp
bmdBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfdXN2c3RyaW5nQXR0ciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpzZXQ8c2V0SlNUZXN0T2JqVXN2c3RyaW5nQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidXN2c3RyaW5nQXR0ciIpOworICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial91c3ZzdHJpbmdB
dHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJ1c3ZzdHJpbmdBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpU
ZXN0T2JqQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNU
ZXN0T2JqJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial90ZXN0
T2JqQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0
T2JqJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0zMTMyLDEyICszMTMyLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RP
YmpUZXN0T2JqQXQKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
SW50ZXJmYWNlPFRlc3RPYmo+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9i
YWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC50ZXN0T2JqQXR0cigpKSkpOwogfQogCi1KU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqVGVzdE9iakF0dHIsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial90ZXN0T2JqQXR0ciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpnZXQ8anNUZXN0T2JqVGVzdE9iakF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0T2JqQXR0
ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial90
ZXN0T2JqQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3RPYmpBdHRyIik7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpUZXN0T2JqQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVl
KQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ial90ZXN0T2JqQXR0clNldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBK
U1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0zMTUwLDEyICszMTUwLDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpU
ZXN0T2JqQXQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdE9ialRlc3RPYmpBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfdGVzdE9iakF0dHIs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialRlc3RPYmpBdHRyU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ0ZXN0T2JqQXR0
ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9i
al90ZXN0T2JqQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAidGVzdE9iakF0dHIiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RPYmpfdGVzdE51bGxhYmxlT2JqQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZt
ID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMTYzLDEyICszMTYzLDEyIEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0TnVsbGEKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMSW50ZXJmYWNlPFRlc3RPYmo+Pj4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2Nv
cGUsIGltcGwudGVzdE51bGxhYmxlT2JqQXR0cigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX3Rlc3ROdWxsYWJsZU9iakF0
dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHJHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJ0ZXN0TnVsbGFibGVPYmpBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpnZXQ8anNUZXN0T2JqX3Rlc3ROdWxsYWJsZU9iakF0dHJHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0
ZXN0TnVsbGFibGVPYmpBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RP
YmpUZXN0TnVsbGFibGVPYmpBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0T2JqX3Rlc3ROdWxsYWJsZU9iakF0dHJTZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1
ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MzE4MSwxMiArMzE4MSwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqVGVzdE51
bGxhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RPYmpUZXN0TnVsbGFibGVPYmpBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfdGVzdE51bGxh
YmxlT2JqQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqVGVzdE51bGxh
YmxlT2JqQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAidGVzdE51bGxhYmxlT2JqQXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial90ZXN0TnVsbGFibGVPYmpBdHRyU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ0ZXN0TnVsbGFi
bGVPYmpBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpMZW5pZW50
VGVzdE9iakF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VGVzdE9iaiYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpfbGVu
aWVudFRlc3RPYmpBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTMxOTQsMTIgKzMxOTQsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdE9iakxlbmllbnRUZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLmxlbmllbnRUZXN0T2JqQXR0cigp
KSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqTGVuaWVudFRlc3RP
YmpBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RPYmpfbGVuaWVudFRlc3RPYmpBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpMZW5pZW50VGVz
dE9iakF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpSZXR1cm5FYXJseT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImxlbmllbnRUZXN0T2JqQXR0ciIpOworICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial9sZW5pZW50VGVz
dE9iakF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpSZXR1cm5FYXJseT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImxlbmllbnRUZXN0T2JqQXR0ciIpOwogfQog
Ci1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyU2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmpl
Y3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqX2xlbmll
bnRUZXN0T2JqQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0g
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMjEyLDEyICszMjEyLDEyIEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpMZW5pZW50VGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0ciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0T2JqX2xlbmllbnRUZXN0T2JqQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpzZXQ8c2V0SlNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyU2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6UmV0dXJuRWFybHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgImxlbmllbnRUZXN0T2JqQXR0ciIpOworICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial9sZW5pZW50VGVzdE9iakF0dHJTZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpSZXR1cm5FYXJseT4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibGVuaWVudFRlc3RPYmpBdHRyIik7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpVbmZvcmdlYWJsZUF0dHJHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVj
dCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpfdW5mb3JnZWFibGVBdHRyR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmpl
Y3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMyMjUs
MTIgKzMyMjUsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialVuZm9yZ2VhYgog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudW5mb3JnZWFibGVBdHRyKCkpKSk7
CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpVbmZvcmdlYWJsZUF0dHIs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9i
al91bmZvcmdlYWJsZUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialVuZm9yZ2VhYmxlQXR0ckdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgInVuZm9yZ2VhYmxlQXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial91bmZvcmdlYWJsZUF0dHJHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJ1bmZvcmdlYWJsZUF0dHIiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9i
alN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0T2JqX3N0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5n
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRo
aXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTMyMzgsMTIgKzMyMzgsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialN0cmlu
Z0F0dAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ0FkYXB0b3I8SURMRE9NU3RyaW5nPj4obGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgaW1wbC5zdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZygp
KSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqU3RyaW5nQXR0clRy
ZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9zdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0
cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJp
bmdHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyIp
OworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial9zdHJp
bmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0cmluZ0F0
dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ1NldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBK
U1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ial9zdHJpbmdBdHRy
VHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ1NldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAg
IGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMjU2LDEyICszMjU2LDEy
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpTdHJpbmdBdHQKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialN0cmluZ0F0
dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfc3RyaW5nQXR0
clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpT
VGVzdE9ialN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdHJpbmdBdHRyVHJlYXRp
bmdOdWxsQXNFbXB0eVN0cmluZyIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6c2V0PHNldEpTVGVzdE9ial9zdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ1Nl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3Ry
aW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciKTsKIH0KIAotc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdE9ialVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nR2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNP
YmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqX3VzdnN0cmluZ0F0dHJUcmVh
dGluZ051bGxBc0VtcHR5U3RyaW5nR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMyNjksMTIgKzMyNjksMTIgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdE9ialVzdnN0cmluZwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ0FkYXB0b3I8SURMVVNWU3RyaW5n
Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51c3ZzdHJpbmdBdHRyVHJl
YXRpbmdOdWxsQXNFbXB0eVN0cmluZygpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNUZXN0T2JqVXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial91c3Zz
dHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqVXN2
c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1c3Zz
dHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyIpOworICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial91c3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxs
QXNFbXB0eVN0cmluZ0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxB
c0VtcHR5U3RyaW5nIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpVc3Zz
dHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ1NldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVl
KQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ial91c3ZzdHJpbmdBdHRyVHJlYXRpbmdO
dWxsQXNFbXB0eVN0cmluZ1NldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZt
ID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMjg3LDEyICszMjg3LDEyIEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmcKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialVzdnN0cmluZ0F0dHJUcmVh
dGluZ051bGxBc0VtcHR5U3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfdXN2c3RyaW5nQXR0clRy
ZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVz
dE9ialVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ1c3ZzdHJpbmdBdHRyVHJl
YXRpbmdOdWxsQXNFbXB0eVN0cmluZyIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6c2V0PHNldEpTVGVzdE9ial91c3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0
cmluZ1NldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAidXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciKTsKIH0KIAotc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakJ5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0
eVN0cmluZ0dldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0
T2JqJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial9ieXRlU3Ry
aW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2
bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzMwMCwxMiArMzMwMCwxMiBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQnl0ZVN0cmluCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETExlZ2FjeU51bGxUb0VtcHR5U3RyaW5nQWRhcHRvcjxJ
RExCeXRlU3RyaW5nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5ieXRl
U3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoKSkpKTsKIH0KIAotSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakJ5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0
eVN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0T2JqX2J5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZywgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+Ojpn
ZXQ8anNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiYnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nIik7Cisg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX2J5dGVTdHJp
bmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImJ5dGVTdHJp
bmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nU2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNP
YmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqX2J5
dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ1NldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZh
bHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMzE4
LDEyICszMzE4LDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpCeXRlU3RyaW4K
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dE9iakJ5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZywgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0T2JqX2J5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZywgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0Vt
cHR5U3RyaW5nU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJieXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciKTsKKyAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfYnl0ZVN0cmlu
Z0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJieXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFz
RW1wdHlTdHJpbmciKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialN0cmlu
Z0xvbmdSZWNvcmRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2Jq
X3N0cmluZ0xvbmdSZWNvcmRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMzMzEsMTIgKzMzMzEsMTIgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdE9ialN0cmluZ0xvbgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExSZWNvcmQ8SURMRE9NU3RyaW5nLCBJRExMb25nPj4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc3Ry
aW5nTG9uZ1JlY29yZEF0dHIoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfc3RyaW5nTG9uZ1JlY29yZEF0dHIsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
Z2V0PGpzVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3RyaW5n
TG9uZ1JlY29yZEF0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46Omdl
dDxqc1Rlc3RPYmpfc3RyaW5nTG9uZ1JlY29yZEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdHJpbmdM
b25nUmVjb3JkQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqU3Ry
aW5nTG9uZ1JlY29yZEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RPYmpfc3RyaW5nTG9uZ1JlY29yZEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2
YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzM0
OSwxMiArMzM0OSwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqU3RyaW5nTG9u
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RPYmpTdHJpbmdMb25nUmVjb3JkQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3N0cmluZ0xvbmdS
ZWNvcmRBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpTdHJpbmdMb25n
UmVjb3JkQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAic3RyaW5nTG9uZ1JlY29yZEF0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfc3RyaW5nTG9uZ1JlY29yZEF0dHJTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0cmluZ0xv
bmdSZWNvcmRBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpVc3Zz
dHJpbmdMb25nUmVjb3JkQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dE9ial91c3ZzdHJpbmdMb25nUmVjb3JkQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0g
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMzYyLDEyICszMzYyLDEyIEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpVc3ZzdHJpbmcKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMUmVjb3JkPElETFVTVlN0cmluZywgSURMTG9uZz4+KGxleGlj
YWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBp
bXBsLnVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0ciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX3VzdnN0cmluZ0xvbmdS
ZWNvcmRBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0ckdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgInVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyIik7CisgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX3VzdnN0cmluZ0xvbmdSZWNvcmRBdHRy
R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAidXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIiKTsKIH0KIAotc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyU2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3Qs
IEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqX3VzdnN0cmlu
Z0xvbmdSZWNvcmRBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0g
PSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMzODAsMTIgKzMzODAsMTIgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdE9ialVzdnN0cmluZwogICAgIHJldHVybiB0cnVlOwogfQog
Ci1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29y
ZEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9D
VVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial91c3ZzdHJpbmdMb25nUmVjb3JkQXR0ciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHJTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInVzdnN0
cmluZ0xvbmdSZWNvcmRBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpzZXQ8c2V0SlNUZXN0T2JqX3VzdnN0cmluZ0xvbmdSZWNvcmRBdHRyU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ1c3ZzdHJpbmdMb25nUmVj
b3JkQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqVXN2c3RyaW5n
TG9uZ1JlY29yZEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTVGVzdE9iaiYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpf
dXN2c3RyaW5nTG9uZ1JlY29yZEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzM5MywxMiArMzM5MywxMiBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0T2JqVXN2c3RyaW5nCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETFJlY29yZDxJRExCeXRlU3RyaW5nLCBJRExMb25nPj4obGV4aWNhbEds
b2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwu
dXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfdXN2c3RyaW5nTG9uZ1JlY29y
ZEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAidXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpfdXN2c3RyaW5nTG9uZ1JlY29yZEF0dHJHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJ1c3ZzdHJpbmdMb25nUmVjb3JkQXR0ciIpOwogfQogCi1zdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHJTZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNW
YWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpfdXN2c3RyaW5nTG9u
Z1JlY29yZEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzQxMSwxMiArMzQxMSwxMiBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0T2JqVXN2c3RyaW5nCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpT
Q19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0T2JqX3VzdnN0cmluZ0xvbmdSZWNvcmRBdHRyLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0clNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidXN2c3RyaW5n
TG9uZ1JlY29yZEF0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNl
dDxzZXRKU1Rlc3RPYmpfdXN2c3RyaW5nTG9uZ1JlY29yZEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInVzdnN0cmluZ0xvbmdSZWNvcmRB
dHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdPYmpSZWNv
cmRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RP
YmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqX3N0cmluZ09i
alJlY29yZEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMzQyNCwxMiArMzQyNCwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0T2JqU3RyaW5nT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETFJlY29yZDxJRExET01TdHJpbmcsIElETEludGVyZmFjZTxUZXN0T2JqPj4+KGxleGljYWxH
bG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBs
LnN0cmluZ09ialJlY29yZEF0dHIoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdE9ialN0cmluZ09ialJlY29yZEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9zdHJpbmdPYmpSZWNvcmRBdHRyLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OmdldDxqc1Rlc3RPYmpTdHJpbmdPYmpSZWNvcmRBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3RyaW5n
T2JqUmVjb3JkQXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0
PGpzVGVzdE9ial9zdHJpbmdPYmpSZWNvcmRBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3RyaW5nT2Jq
UmVjb3JkQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqU3RyaW5n
T2JqUmVjb3JkQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdE9ial9zdHJpbmdPYmpSZWNvcmRBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUp
CiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM0NDIsMTIg
KzM0NDIsMTIgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialN0cmluZ09iagogICAg
IHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2Jq
U3RyaW5nT2JqUmVjb3JkQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3N0cmluZ09ialJlY29yZEF0
dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialN0cmluZ09ialJlY29yZEF0
dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
InN0cmluZ09ialJlY29yZEF0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OnNldDxzZXRKU1Rlc3RPYmpfc3RyaW5nT2JqUmVjb3JkQXR0clNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3RyaW5nT2JqUmVjb3JkQXR0
ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqU3RyaW5nTnVsbGFibGVP
YmpSZWNvcmRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqX3N0
cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zNDU1LDEyICszNDU1LDEyIEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdOdWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMUmVjb3JkPElETERPTVN0cmluZywgSURMTnVsbGFibGU8SURMSW50
ZXJmYWNlPFRlc3RPYmo+Pj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2Jh
bE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0cigp
KSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqU3RyaW5nTnVsbGFi
bGVPYmpSZWNvcmRBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RPYmpfc3RyaW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxq
c1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdHJp
bmdOdWxsYWJsZU9ialJlY29yZEF0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OmdldDxqc1Rlc3RPYmpfc3RyaW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAic3RyaW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHJTZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwg
SlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpfc3RyaW5nTnVs
bGFibGVPYmpSZWNvcmRBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYg
dm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM0NzMsMTIgKzM0NzMsMTIgQEAgc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialN0cmluZ051bAogICAgIHJldHVybiB0cnVlOwog
fQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqU3RyaW5nTnVsbGFibGVP
YmpSZWNvcmRBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfc3RyaW5nTnVsbGFibGVPYmpSZWNvcmRB
dHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9i
alJlY29yZEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgInN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0ciIpOworICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial9zdHJpbmdOdWxsYWJsZU9ialJl
Y29yZEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgInN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0ckdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQor
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial9zdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRB
dHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmom
IHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTM0ODYsMTIgKzM0ODYsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialN0
cmluZ1ZvaQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExSZWNv
cmQ8SURMRE9NU3RyaW5nLCBJRExDYWxsYmFja0Z1bmN0aW9uPEpTVm9pZENhbGxiYWNrPj4+KGxl
eGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3Bl
LCBpbXBsLnN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHIoKSkpKTsKIH0KIAotSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHIsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9z
dHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpTdHJpbmdWb2lk
Q2FsbGJhY2tSZWNvcmRBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3RyaW5nVm9pZENhbGxiYWNrUmVj
b3JkQXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVz
dE9ial9zdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3RyaW5n
Vm9pZENhbGxiYWNrUmVjb3JkQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVl
KQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ial9zdHJpbmdWb2lkQ2FsbGJhY2tSZWNv
cmRBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RP
YmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM1MDQsMTIgKzM1MDQsMTIgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdE9ialN0cmluZ1ZvaQogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVG
SU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0T2JqX3N0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHIsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0
dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
InN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfc3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
c3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0T2JqRGljdGlvbmFyeUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RPYmpfZGljdGlvbmFyeUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzUxNywxMiArMzUxNywxMiBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0T2JqRGljdGlvbmFyCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETERpY3Rpb25hcnk8VGVzdE9iajo6RGljdGlvbmFyeT4+KGxleGlj
YWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBp
bXBsLmRpY3Rpb25hcnlBdHRyKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RPYmpEaWN0aW9uYXJ5QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX2RpY3Rpb25hcnlBdHRyLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RP
YmpEaWN0aW9uYXJ5QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImRpY3Rpb25hcnlBdHRyIik7CisgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX2RpY3Rpb25hcnlB
dHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiZGljdGlvbmFyeUF0dHIiKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdE9iakRpY3Rpb25hcnlBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUp
CitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqX2RpY3Rpb25hcnlBdHRyU2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3Qs
IEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTM1MzUsMTIgKzM1MzUsMTIgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9i
akRpY3Rpb25hcgogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0T2JqRGljdGlvbmFyeUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9kaWN0aW9u
YXJ5QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqRGljdGlvbmFyeUF0
dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
ImRpY3Rpb25hcnlBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+Ojpz
ZXQ8c2V0SlNUZXN0T2JqX2RpY3Rpb25hcnlBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJkaWN0aW9uYXJ5QXR0ciIpOwogfQogCi1zdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVEaWN0aW9uYXJ5QXR0ckdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0
KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial9udWxsYWJsZURpY3Rpb25hcnlBdHRy
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRo
aXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTM1NDgsMTIgKzM1NDgsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak51bGxh
YmxlRAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJs
ZTxJRExEaWN0aW9uYXJ5PFRlc3RPYmo6OkRpY3Rpb25hcnk+Pj4obGV4aWNhbEdsb2JhbE9iamVj
dCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwubnVsbGFibGVE
aWN0aW9uYXJ5QXR0cigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0
T2JqTnVsbGFibGVEaWN0aW9uYXJ5QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX251bGxhYmxlRGljdGlvbmFyeUF0dHIsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
Z2V0PGpzVGVzdE9iak51bGxhYmxlRGljdGlvbmFyeUF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJudWxs
YWJsZURpY3Rpb25hcnlBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpnZXQ8anNUZXN0T2JqX251bGxhYmxlRGljdGlvbmFyeUF0dHJHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJu
dWxsYWJsZURpY3Rpb25hcnlBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RPYmpOdWxsYWJsZURpY3Rpb25hcnlBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqX251bGxhYmxlRGljdGlvbmFyeUF0dHJTZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVj
dCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMzU2NiwxMiArMzU2NiwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
T2JqTnVsbGFibGVECiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RPYmpOdWxsYWJsZURpY3Rpb25hcnlBdHRyLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RP
YmpfbnVsbGFibGVEaWN0aW9uYXJ5QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNU
ZXN0T2JqTnVsbGFibGVEaWN0aW9uYXJ5QXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibnVsbGFibGVEaWN0aW9uYXJ5QXR0ciIpOworICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial9udWxsYWJs
ZURpY3Rpb25hcnlBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJudWxsYWJsZURpY3Rpb25hcnlBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHJHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKK3N0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpfYW5ub3RhdGVkVHlwZUluVW5pb25BdHRyR2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNP
YmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM1
NzksMTIgKzM1NzksMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakFubm90YXRl
ZAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExVbmlvbjxJRExE
T01TdHJpbmcsIElETENsYW1wQWRhcHRvcjxJRExMb25nPj4+KGxleGljYWxHbG9iYWxPYmplY3Qs
ICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLmFubm90YXRlZFR5
cGVJblVuaW9uQXR0cigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0
T2JqQW5ub3RhdGVkVHlwZUluVW5pb25BdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfYW5ub3RhdGVkVHlwZUluVW5pb25BdHRyLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OmdldDxqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHJHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJhbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdE9iaj46OmdldDxqc1Rlc3RPYmpfYW5ub3RhdGVkVHlwZUluVW5pb25BdHRyR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiYW5ub3RhdGVkVHlwZUluVW5pb25BdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHJTZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1
ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpfYW5ub3RhdGVkVHlwZUlu
VW5pb25BdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6
OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM1OTcsMTIgKzM1OTcsMTIgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdE9iakFubm90YXRlZAogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5pb25BdHRy
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RPYmpfYW5ub3RhdGVkVHlwZUluVW5pb25BdHRyLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHJTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImFubm90YXRl
ZFR5cGVJblVuaW9uQXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
c2V0PHNldEpTVGVzdE9ial9hbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHJTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImFubm90YXRlZFR5cGVJblVu
aW9uQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQW5ub3RhdGVk
VHlwZUluU2VxdWVuY2VBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
T2JqX2Fubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZt
ID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zNjEwLDEyICszNjEwLDEyIEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpBbm5vdGF0ZWQKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMU2VxdWVuY2U8SURMQ2xhbXBBZGFwdG9yPElETExvbmc+
Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93
U2NvcGUsIGltcGwuYW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyKCkpKSk7CiB9CiAKLUpTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHIs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9i
al9hbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewot
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakFubm90YXRl
ZFR5cGVJblNlcXVlbmNlQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImFubm90YXRlZFR5cGVJblNlcXVl
bmNlQXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVz
dE9ial9hbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhbm5vdGF0
ZWRUeXBlSW5TZXF1ZW5jZUF0dHIiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dE9iakFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQor
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ial9hbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0
dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYg
dGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0o
JmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMzYyOCwxMiArMzYyOCwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0T2JqQW5ub3RhdGVkCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHIsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdE9ial9hbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHIsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0clNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYW5ub3Rh
dGVkVHlwZUluU2VxdWVuY2VBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpzZXQ8c2V0SlNUZXN0T2JqX2Fubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0clNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYW5ub3RhdGVk
VHlwZUluU2VxdWVuY2VBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RP
YmpJbXBsZW1lbnRhdGlvbkVudW1BdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0T2JqX2ltcGxlbWVudGF0aW9uRW51bUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2
bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzY0MSwxMiArMzY0MSwxMiBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqSW1wbGVtZW50CiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETEVudW1lcmF0aW9uPEFsdGVybmF0ZUVudW1OYW1lPj4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5pbXBsZW1lbnRhdGlvbkVudW1B
dHRyKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpJbXBsZW1l
bnRhdGlvbkVudW1BdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RPYmpfaW1wbGVtZW50YXRpb25FbnVtQXR0ciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0
T2JqSW1wbGVtZW50YXRpb25FbnVtQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImltcGxlbWVudGF0aW9u
RW51bUF0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rl
c3RPYmpfaW1wbGVtZW50YXRpb25FbnVtQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImltcGxlbWVudGF0
aW9uRW51bUF0dHIiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakltcGxl
bWVudGF0aW9uRW51bUF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RPYmpfaW1wbGVtZW50YXRpb25FbnVtQXR0clNldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVl
IHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0z
NjYyLDEyICszNjYyLDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpJbXBsZW1l
bnQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpT
VGVzdE9iakltcGxlbWVudGF0aW9uRW51bUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9pbXBsZW1l
bnRhdGlvbkVudW1BdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsK
LSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpJbXBs
ZW1lbnRhdGlvbkVudW1BdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJpbXBsZW1lbnRhdGlvbkVudW1BdHRyIik7CisgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqX2ltcGxlbWVudGF0aW9uRW51
bUF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgImltcGxlbWVudGF0aW9uRW51bUF0dHIiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdE9iak1lZGlhRGV2aWNlc0dldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdE9ial9tZWRpYURldmljZXNHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMzY3NSwxMiArMzY3NSwxMiBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0T2JqTWVkaWFEZXZpCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETEludGVyZmFjZTxNZWRpYURldmljZXM+PihsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5tZWRpYURldmlj
ZXMoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iak1lZGlhRGV2
aWNlcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0T2JqX21lZGlhRGV2aWNlcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqTWVkaWFEZXZpY2VzR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAibWVkaWFEZXZpY2VzIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RPYmo+OjpnZXQ8anNUZXN0T2JqX21lZGlhRGV2aWNlc0dldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm1lZGlh
RGV2aWNlcyIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqWE1MT2JqQXR0
ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0
aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial9YTUxPYmpBdHRyR2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNP
YmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM2
ODgsMTIgKzM2ODgsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialhNTE9iakF0
dAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8
VGVzdE9iaj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgp
LCB0aHJvd1Njb3BlLCBpbXBsLnhtbE9iakF0dHIoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdE9ialhNTE9iakF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9YTUxPYmpBdHRyLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rl
c3RPYmpYTUxPYmpBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiWE1MT2JqQXR0ciIpOworICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial9YTUxPYmpBdHRyR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiWE1MT2JqQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0T2JqWE1MT2JqQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdE9ial9YTUxPYmpBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAg
ICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM3MDYsMTIgKzM3MDYs
MTIgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialhNTE9iakF0dAogICAgIHJldHVy
biB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqWE1MT2Jq
QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX1hNTE9iakF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
c2V0PHNldEpTVGVzdE9ialhNTE9iakF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlhNTE9iakF0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfWE1MT2JqQXR0clNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiWE1MT2JqQXR0ciIp
OwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ3JlYXRlR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqX2NyZWF0ZUdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQogewogICAgIGF1
dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zNzE5LDEyICszNzE5LDEyIEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDcmVhdGVHZXQKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQm9vbGVhbj4obGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgaW1wbC5pc0NyZWF0ZSgpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0T2JqQ3JlYXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfY3JlYXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
IHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDcmVh
dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJjcmVhdGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdE9iaj46OmdldDxqc1Rlc3RPYmpfY3JlYXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY3JlYXRlIik7
CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDcmVhdGVTZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNW
YWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpfY3JlYXRlU2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmpl
Y3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTM3MzcsMTIgKzM3MzcsMTIgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dE9iakNyZWF0ZVNldAogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0T2JqQ3JlYXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfY3JlYXRlLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpDcmVhdGVTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNyZWF0ZSIpOworICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial9jcmVhdGVTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNyZWF0ZSIp
OwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0
ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0
aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial9yZWZsZWN0ZWRTdHJp
bmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RP
YmomIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTM3NTAsMTIgKzM3NTAsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9i
alJlZmxlY3RlZAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExE
T01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZHN0cmlu
Z2F0dHJBdHRyKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialJl
ZmxlY3RlZFN0cmluZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdE9ial9yZWZsZWN0ZWRTdHJpbmdBdHRyLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RP
YmpSZWZsZWN0ZWRTdHJpbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkU3RyaW5nQXR0
ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial9y
ZWZsZWN0ZWRTdHJpbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkU3RyaW5nQXR0ciIp
OwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0
clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0
aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9i
al9yZWZsZWN0ZWRTdHJpbmdBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0
byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM3NjgsMTIgKzM3NjgsMTIgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZAogICAgIHJldHVybiB0cnVl
OwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3Ry
aW5nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3JlZmxlY3RlZFN0cmluZ0F0dHIsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHJTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZmxlY3RlZFN0
cmluZ0F0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRK
U1Rlc3RPYmpfcmVmbGVjdGVkU3RyaW5nQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkU3RyaW5nQXR0ciIpOwogfQogCi1z
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVVNWU3RyaW5nQXR0ckdldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2Jq
ZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial9yZWZsZWN0ZWRVU1ZTdHJpbmdB
dHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmom
IHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTM3ODEsMTIgKzM3ODEsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJl
ZmxlY3RlZAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExVU1ZT
dHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZHVzdnN0cmlu
Z2F0dHJBdHRyKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialJl
ZmxlY3RlZFVTVlN0cmluZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdE9ial9yZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxq
c1Rlc3RPYmpSZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVk
VVNWU3RyaW5nQXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0
PGpzVGVzdE9ial9yZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVj
dGVkVVNWU3RyaW5nQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2Jq
UmVmbGVjdGVkVVNWU3RyaW5nQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdE9ial9yZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyU2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpT
VmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTM3OTksMTIgKzM3OTksMTIgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialJl
ZmxlY3RlZAogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0T2JqUmVmbGVjdGVkVVNWU3RyaW5nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3Jl
ZmxlY3RlZFVTVlN0cmluZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9i
alJlZmxlY3RlZFVTVlN0cmluZ0F0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZmxlY3RlZFVTVlN0cmluZ0F0dHIiKTsKKyAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfcmVmbGVjdGVkVVNW
U3RyaW5nQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAicmVmbGVjdGVkVVNWU3RyaW5nQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0T2JqX3JlZmxlY3RlZEludGVncmFsQXR0ckdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQogewog
ICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zODEyLDEyICszODEy
LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWQKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC5nZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1M
TmFtZXM6OnJlZmxlY3RlZGludGVncmFsYXR0ckF0dHIpKSkpOwogfQogCi1KU0NfREVGSU5FX0NV
U1RPTV9HRVRURVIoanNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfcmVmbGVjdGVkSW50
ZWdyYWxBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHJHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJyZWZsZWN0ZWRJbnRlZ3JhbEF0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpfcmVmbGVjdGVkSW50ZWdyYWxBdHRyR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAicmVmbGVjdGVkSW50ZWdyYWxBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2
YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpfcmVmbGVjdGVkSW50ZWdyYWxB
dHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmom
IHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTM4MzAsMTIgKzM4MzAsMTIgQEAgc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdE9ialJlZmxlY3RlZAogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RPYmpfcmVmbGVjdGVkSW50ZWdyYWxBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNl
dDxzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZmxlY3RlZEludGVncmFsQXR0ciIp
OworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial9y
ZWZsZWN0ZWRJbnRlZ3JhbEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgInJlZmxlY3RlZEludGVncmFsQXR0ciIpOwogfQogCi1zdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHJHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09i
amVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpfcmVmbGVjdGVkVW5zaWduZWRJ
bnRlZ3JhbEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMzg0MywxMiArMzg0MywxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0T2JqUmVmbGVjdGVkCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETFVuc2lnbmVkTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgc3RkOjpt
YXgoMCwgaW1wbC5nZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxl
Y3RlZHVuc2lnbmVkaW50ZWdyYWxhdHRyQXR0cikpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9yZWZsZWN0
ZWRVbnNpZ25lZEludGVncmFsQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqUmVmbGVjdGVkVW5zaWdu
ZWRJbnRlZ3JhbEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0ZWRVbnNpZ25lZEludGVncmFs
QXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9i
al9yZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3Rl
ZFVuc2lnbmVkSW50ZWdyYWxBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVl
KQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ial9yZWZsZWN0ZWRVbnNpZ25lZEludGVn
cmFsQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0
T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0zODYxLDEyICszODYxLDEyIEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RF
RklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxB
dHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfcmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdy
YWxBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJyZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0ciIpOworICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial9yZWZsZWN0ZWRVbnNpZ25lZEludGVn
cmFsQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAicmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIiKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0T2JqX3JlZmxlY3RlZEJvb2xlYW5BdHRyR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCiB7
CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM4NzQsMTIgKzM4
NzQsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZAogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExCb29sZWFuPihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6
YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRib29sZWFuYXR0ckF0dHIpKSkpOwog
fQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0
dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dE9ial9yZWZsZWN0ZWRCb29sZWFuQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqUmVmbGVjdGVkQm9v
bGVhbkF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0ZWRCb29sZWFuQXR0ciIpOworICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial9yZWZsZWN0ZWRCb29s
ZWFuQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RlZEJvb2xlYW5BdHRyIik7CiB9CiAKLXN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0clNldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0
LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ial9yZWZsZWN0
ZWRCb29sZWFuQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0g
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zODkyLDEyICszODkyLDEyIEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRy
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RPYmpfcmVmbGVjdGVkQm9vbGVhbkF0dHIsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6c2V0PHNldEpTVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZWZsZWN0ZWRCb29sZWFu
QXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVz
dE9ial9yZWZsZWN0ZWRCb29sZWFuQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkQm9vbGVhbkF0dHIiKTsKIH0KIAotc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVSTEF0dHJHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKK3N0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpfcmVmbGVjdGVkVVJMQXR0ckdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQog
ewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zOTA1LDEyICsz
OTA1LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWQKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmdldFVSTEF0dHJpYnV0ZShXZWJDb3JlOjpI
VE1MTmFtZXM6OnJlZmxlY3RlZHVybGF0dHJBdHRyKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9yZWZsZWN0ZWRVUkxBdHRyLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OmdldDxqc1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVj
dGVkVVJMQXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpz
VGVzdE9ial9yZWZsZWN0ZWRVUkxBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkVVJMQXR0
ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0
clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0
aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9i
al9yZWZsZWN0ZWRVUkxBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYg
dm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM5MjMsMTIgKzM5MjMsMTIgQEAgc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZAogICAgIHJldHVybiB0cnVlOwog
fQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0T2JqX3JlZmxlY3RlZFVSTEF0dHIsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6c2V0PHNldEpTVGVzdE9ialJlZmxlY3RlZFVSTEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZmxlY3RlZFVSTEF0dHIiKTsKKyAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfcmVmbGVj
dGVkVVJMQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAicmVmbGVjdGVkVVJMQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0T2JqUmVmbGVjdGVkVVNWVVJMQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdE9ial9yZWZsZWN0ZWRVU1ZVUkxBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYg
dm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM5MzYsMTIgKzM5MzYsMTIgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZAogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExVU1ZTdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3Qs
IHRocm93U2NvcGUsIGltcGwuZ2V0VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVm
bGVjdGVkdXN2dXJsYXR0ckF0dHIpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0T2JqUmVmbGVjdGVkVVNWVVJMQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX3JlZmxlY3RlZFVTVlVSTEF0dHIsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
Z2V0PGpzVGVzdE9ialJlZmxlY3RlZFVTVlVSTEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0
ZWRVU1ZVUkxBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8
anNUZXN0T2JqX3JlZmxlY3RlZFVTVlVSTEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0ZWRV
U1ZVUkxBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0
ZWRVU1ZVUkxBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0T2JqX3JlZmxlY3RlZFVTVlVSTEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkK
IHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzk1NCwxMiAr
Mzk1NCwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpS
ZWZsZWN0ZWRVU1ZVUkxBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfcmVmbGVjdGVkVVNWVVJMQXR0
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqUmVmbGVjdGVkVVNWVVJMQXR0
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
cmVmbGVjdGVkVVNWVVJMQXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6c2V0PHNldEpTVGVzdE9ial9yZWZsZWN0ZWRVU1ZVUkxBdHRyU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZWZsZWN0ZWRVU1ZVUkxBdHRy
Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdB
dHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmom
IHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqX3JlZmxlY3RlZFN0
cmluZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVz
dE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMzk2NywxMiArMzk2NywxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
T2JqUmVmbGVjdGVkCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVu
dFN0cmluZ0F0dHJBdHRyKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dE9ialJlZmxlY3RlZFN0cmluZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9yZWZsZWN0ZWRTdHJpbmdBdHRyLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxq
c1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkU3Ry
aW5nQXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVz
dE9ial9yZWZsZWN0ZWRTdHJpbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkU3RyaW5n
QXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3Ry
aW5nQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0
T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdE9ial9yZWZsZWN0ZWRTdHJpbmdBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAg
ICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM5ODUsMTIgKzM5ODUs
MTIgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZAogICAgIHJldHVy
biB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqUmVmbGVj
dGVkU3RyaW5nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3JlZmxlY3RlZFN0cmluZ0F0dHIsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHJTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZmxl
Y3RlZFN0cmluZ0F0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNl
dDxzZXRKU1Rlc3RPYmpfcmVmbGVjdGVkU3RyaW5nQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkU3RyaW5nQXR0ciIpOwog
fQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdy
YWxBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RP
YmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqX3JlZmxlY3Rl
ZEN1c3RvbUludGVncmFsQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0zOTk4LDEyICszOTk4LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWQKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5n
ZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRJbnRl
Z3JhbEF0dHJBdHRyKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9i
alJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX3JlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RPYmo+OjpnZXQ8anNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAicmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyIik7CisgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX3JlZmxlY3RlZEN1c3RvbUludGVncmFs
QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ciIpOwogfQog
Ci1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxB
dHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmom
IHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
T2JqX3JlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQog
ewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00MDE2LDEyICs0
MDE2LDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWQKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialJl
ZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3JlZmxlY3RlZEN1
c3RvbUludGVncmFsQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7
Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqUmVm
bGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIiKTsKKyAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfcmVmbGVj
dGVkQ3VzdG9tSW50ZWdyYWxBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJyZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIiKTsKIH0KIAot
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRy
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRo
aXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqX3JlZmxlY3RlZEN1c3Rv
bUJvb2xlYW5BdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3RPYmomIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTQwMjksMTIgKzQwMjksMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdE9ialJlZmxlY3RlZAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExCb29sZWFuPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmhhc0F0
dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21D
b250ZW50Qm9vbGVhbkF0dHJBdHRyKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfcmVmbGVjdGVkQ3VzdG9tQm9v
bGVhbkF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIiKTsKKyAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpfcmVmbGVjdGVkQ3VzdG9tQm9v
bGVhbkF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ciIpOwog
fQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVh
bkF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9i
aiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RPYmpfcmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkK
IHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDA0NywxMiAr
NDA0NywxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpS
ZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3JlZmxlY3RlZEN1
c3RvbUJvb2xlYW5BdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsK
LSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpSZWZs
ZWN0ZWRDdXN0b21Cb29sZWFuQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIiKTsKKyAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfcmVmbGVjdGVk
Q3VzdG9tQm9vbGVhbkF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgInJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyIik7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3Qp
CitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqX3JlZmxlY3RlZEN1c3RvbVVSTEF0dHJH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhp
c09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
NDA2MCwxMiArNDA2MCwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVmbGVj
dGVkCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmlu
Zz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5nZXRVUkxBdHRyaWJ1dGUo
V2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50VVJMQXR0ckF0dHIpKSkpOwogfQogCi1K
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0ciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2Jq
X3JlZmxlY3RlZEN1c3RvbVVSTEF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialJlZmxlY3RlZEN1c3Rv
bVVSTEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0ZWRDdXN0b21VUkxBdHRyIik7CisgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX3JlZmxlY3RlZEN1
c3RvbVVSTEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0ZWRDdXN0b21VUkxBdHRyIik7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRy
U2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRo
aXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2Jq
X3JlZmxlY3RlZEN1c3RvbVVSTEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDA3OCwxMyArNDA3OCwxMyBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRD
dXN0b21VUkxBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfcmVmbGVjdGVkQ3VzdG9tVVJMQXR0ciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
cmVmbGVjdGVkQ3VzdG9tVVJMQXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6c2V0PHNldEpTVGVzdE9ial9yZWZsZWN0ZWRDdXN0b21VUkxBdHRyU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZWZsZWN0ZWRDdXN0
b21VUkxBdHRyIik7CiB9CiAKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKK3N0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpfZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZUdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlz
T2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00
MDkyLDE1ICs0MDkyLDE1IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpFbmFibGVk
QXQKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5n
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmVuYWJsZWRBdFJ1bnRpbWVB
dHRyaWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakVu
YWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9lbmFibGVkQXRSdW50aW1lQXR0cmlidXRlLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OmdldDxqc1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
ZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial9lbmFibGVkQXRSdW50aW1lQXR0cmlidXRlR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSIpOwogfQogCiAjZW5kaWYKIAogI2lm
IEVOQUJMRShURVNUX0ZFQVRVUkUpCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqRW5h
YmxlZEF0UnVudGltZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdE9ial9lbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3Qs
IEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTQxMTMsMzAgKzQxMTMsMzAgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9i
akVuYWJsZWRBdAogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
T2JqX2VuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNl
dEpTVGVzdE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1
dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RP
YmpfZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSIpOwog
fQogCiAjZW5kaWYKIAogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1zdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGlj
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0KQorc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yX2VuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVT
dGF0aWNHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QpCiB7CiAgICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBUZXN0T2JqOjplbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGljKCkpKSk7
CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJs
ZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RF
RklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbnN0cnVjdG9yX2VuYWJsZWRBdFJ1bnRpbWVB
dHRyaWJ1dGVTdGF0aWMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0U3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yRW5hYmxl
ZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpY0dldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMiKTsKKyAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3Rvcl9l
bmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGljR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYyIpOwogfQogCiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0T2JqQ29uc3RydWN0b3JFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGljU2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakNvbnN0cnVjdG9yX2VuYWJsZWRBdFJ1bnRpbWVB
dHRyaWJ1dGVTdGF0aWNTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTQxNDgsMTQgKzQxNDgsMTQgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9i
akNvbnN0cnVjdAogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRU
RVIoc2V0SlNUZXN0T2JqQ29uc3RydWN0b3JFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGlj
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RPYmpDb25zdHJ1Y3Rvcl9lbmFibGVkQXRSdW50aW1lQXR0cmlidXRl
U3RhdGljLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldFN0YXRpYzxzZXRKU1Rlc3RPYmpDb25zdHJ1
Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWNTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1
dGVTdGF0aWMiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldFN0YXRp
YzxzZXRKU1Rlc3RPYmpDb25zdHJ1Y3Rvcl9lbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGlj
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJl
bmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGljIik7CiB9CiAKICNlbmRpZgogCi1zdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0T2JqVHlwZWRBcnJheUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKK3N0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpfdHlwZWRBcnJheUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDE2MywxMiArNDE2MywxMiBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqVHlwZWRBcnJhCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEZsb2F0MzJBcnJheT4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwudHlw
ZWRBcnJheUF0dHIoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9i
alR5cGVkQXJyYXlBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RPYmpfdHlwZWRBcnJheUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQog
ewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialR5cGVk
QXJyYXlBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidHlwZWRBcnJheUF0dHIiKTsKKyAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpfdHlwZWRBcnJheUF0dHJHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJ0eXBlZEFycmF5QXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0T2JqVHlwZWRBcnJheUF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpfdHlwZWRBcnJheUF0dHJTZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1
ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
NDE4MSw0NiArNDE4MSw0NiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqVHlwZWRB
cnJhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RPYmpUeXBlZEFycmF5QXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3R5cGVkQXJyYXlBdHRy
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpUeXBlZEFycmF5QXR0clNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidHlwZWRB
cnJheUF0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRK
U1Rlc3RPYmpfdHlwZWRBcnJheUF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgInR5cGVkQXJyYXlBdHRyIik7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RPYmpDdXN0b21BdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0T2JqX2N1c3RvbUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIHRoaXNPYmplY3QuY3VzdG9tQXR0cihs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dE9iakN1c3RvbUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01f
R0VUVEVSKGpzVGVzdE9ial9jdXN0b21BdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDdXN0b21BdHRy
R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAiY3VzdG9tQXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial9jdXN0b21BdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY3Vz
dG9tQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ3VzdG9tQXR0
clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0
aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9i
al9jdXN0b21BdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICB0aGlzT2JqZWN0LnNldEN1c3Rv
bUF0dHIobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOwogICAgIHJldHVybiB0cnVlOwogfQog
Ci1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQ3VzdG9tQXR0ciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0T2JqX2N1c3RvbUF0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVz
dE9iakN1c3RvbUF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgImN1c3RvbUF0dHIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfY3VzdG9tQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY3VzdG9tQXR0ciIpOwogfQogCi1zdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqT25mb29HZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RPYmpfb25mb29HZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIGV2ZW50SGFuZGxlckF0dHJpYnV0ZSh0aGlz
T2JqZWN0LndyYXBwZWQoKSwgZXZlbnROYW1lcygpLmZvb0V2ZW50LCB3b3JsZEZvckRPTU9iamVj
dCh0aGlzT2JqZWN0KSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpP
bmZvbywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0T2JqX29uZm9vLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpPbmZvb0dldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm9u
Zm9vIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2Jq
X29uZm9vR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAib25mb28iKTsKIH0KIAotc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdE9iak9uZm9vU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0T2JqX29uZm9vU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBzZXRFdmVu
dEhhbmRsZXJBdHRyaWJ1dGUobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdCwgdGhpc09i
amVjdC53cmFwcGVkKCksIGV2ZW50TmFtZXMoKS5mb29FdmVudCwgdmFsdWUpOwpAQCAtNDIzMCwy
MyArNDIzMCwyMyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqT25mb29TZXR0CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RP
YmpPbmZvbywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX29uZm9vLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNl
dDxzZXRKU1Rlc3RPYmpPbmZvb1NldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAib25mb28iKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfb25mb29TZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm9uZm9vIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RPYmpPbndlYmtpdGZvb0dldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdE9ial9vbndlYmtpdGZvb0dldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQogewogICAgIFVOVVNFRF9QQVJBTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gZXZlbnRIYW5kbGVyQXR0cmlidXRlKHRo
aXNPYmplY3Qud3JhcHBlZCgpLCBldmVudE5hbWVzKCkuZm9vRXZlbnQsIHdvcmxkRm9yRE9NT2Jq
ZWN0KHRoaXNPYmplY3QpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9i
ak9ud2Via2l0Zm9vLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RPYmpfb253ZWJraXRmb28sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak9ud2Via2l0Zm9v
R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAib253ZWJraXRmb28iKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpfb253ZWJraXRmb29HZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJv
bndlYmtpdGZvbyIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqT253ZWJr
aXRmb29TZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9i
aiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RPYmpfb253ZWJraXRmb29TZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2
bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHNldEV2ZW50SGFuZGxl
ckF0dHJpYnV0ZShsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0LCB0aGlzT2JqZWN0Lndy
YXBwZWQoKSwgZXZlbnROYW1lcygpLmZvb0V2ZW50LCB2YWx1ZSk7CkBAIC00MjU2LDEyICs0MjU2
LDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpPbndlYmtpdGYKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9iak9ud2Vi
a2l0Zm9vLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfb253ZWJraXRmb28sIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6c2V0PHNldEpTVGVzdE9iak9ud2Via2l0Zm9vU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJvbndlYmtpdGZvbyIpOworICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial9vbndlYmtpdGZvb1NldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAib253ZWJr
aXRmb28iKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialdpdGhFeGVjU3Rh
dGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VGVzdE9iaiYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpfd2l0
aEV4ZWNTdGF0ZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC00MjY5LDEyICs0MjY5LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RPYmpXaXRoRXhlY1MKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC53
aXRoRXhlY1N0YXRlQXR0cmlidXRlKCpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigmbGV4aWNh
bEdsb2JhbE9iamVjdCkpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0
T2JqV2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX3dpdGhFeGVjU3RhdGVBdHRyaWJ1dGUsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
Z2V0PGpzVGVzdE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ3aXRo
RXhlY1N0YXRlQXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpnZXQ8anNUZXN0T2JqX3dpdGhFeGVjU3RhdGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ3
aXRoRXhlY1N0YXRlQXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RPYmpXaXRoRXhlY1N0YXRlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqX3dpdGhFeGVjU3RhdGVBdHRyaWJ1dGVTZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVj
dCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtNDI4NywxMiArNDI4NywxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
T2JqV2l0aEV4ZWNTCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RPYmpXaXRoRXhlY1N0YXRlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RP
Ympfd2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNU
ZXN0T2JqV2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAid2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZSIpOworICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial93aXRoRXhl
Y1N0YXRlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJ3aXRoRXhlY1N0YXRlQXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0
ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0
aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial93aXRoQ2FsbFdpdGhB
bmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00MzAwLDEyICs0MzAwLDEyIEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoQ2FsbFcKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
aW1wbC53aXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSgqanNDYXN0PEpTRE9N
R2xvYmFsT2JqZWN0Kj4oJmxleGljYWxHbG9iYWxPYmplY3QpKSkpKTsKIH0KIAotSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0
cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RPYmpfd2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0
PGpzVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAid2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUiKTsKKyAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpfd2l0aENhbGxXaXRo
QW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9y
OjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ3aXRoQ2FsbFdpdGhB
bmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGVTZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwg
SlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpfd2l0aENhbGxX
aXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsK
ICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDMxOCwxMiArNDMx
OCwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqV2l0aENhbGxXCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpXaXRo
Q2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3dp
dGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OnNldDxzZXRKU1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZVNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAid2l0
aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfd2l0aENhbGxXaXRoQW5kU2V0dGVy
Q2FsbFdpdGhBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgIndpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlIik7
CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9i
al93aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQogewogICAgIGF1
dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00MzM0LDEyICs0MzM0LDEyIEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXAKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+PihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1w
bC53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSgqY29udGV4dCkpKSk7CiB9CiAK
LUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0T2JqX3dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OmdldDxqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZUdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlIik7CisgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX3dpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAid2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBdHRyaWJ1dGUiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9i
aldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFs
dWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqX3dpdGhTY3JpcHRFeGVjdXRpb25D
b250ZXh0QXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0g
PSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQzNTUsMTIgKzQzNTUsMTIgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdE9ialdpdGhTY3JpcAogICAgIHJldHVybiB0cnVlOwogfQog
Ci1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQor
SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial93aXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7
Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqV2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0
SlNUZXN0T2JqX3dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ3aXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEF0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGVHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09i
amVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpfd2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9
IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDM3MSwxMiArNDM3MSwxMiBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4obGV4aWNhbEdsb2JhbE9i
amVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwud2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUoKmpzQ2FzdDxKU0RPTUds
b2JhbE9iamVjdCo+KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgKmNhbGxGcmFtZSwgKmNvbnRleHQp
KSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqV2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial93aXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0g
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqV2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ3
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZSIpOworICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial93aXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIndpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRlIik7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4
ZWNTdGF0ZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdE9ial93aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0
dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0
T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC00MzkyLDEyICs0MzkyLDEyIEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RF
RklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kRXhlY1N0YXRlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfd2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0
PHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmli
dXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZSIpOworICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial93aXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAid2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNw
YWNlc0F0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNUZXN0T2JqJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial93
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGVH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhp
c09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
NDQwOCwxMiArNDQwOCwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqV2l0aFNj
cmlwCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFj
ZTxUZXN0T2JqPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0
KCksIHRocm93U2NvcGUsIGltcGwud2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3Rh
dGVXaXRoU3BhY2VzQXR0cmlidXRlKCpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigmbGV4aWNh
bEdsb2JhbE9iamVjdCksICpjYWxsRnJhbWUsICpjb250ZXh0KSkpKTsKIH0KIAotSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhl
Y1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX3dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5k
RXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0g
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqV2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2Vz
QXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNU
ZXN0T2JqX3dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0
dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhl
Y1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2Vz
QXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0T2JqX3dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNl
c0F0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNU
ZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00NDI5LDEzICs0NDI5LDEzIEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlND
X0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3dp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfd2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUiKTsKIH0KIAogI2lmIEVOQUJMRShD
b25kaXRpb24xKQotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0
cjFHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYg
dGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpfY29uZGl0aW9uYWxB
dHRyMUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2Jq
JiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC00NDQzLDE1ICs0NDQzLDE1IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpD
b25kaXRpb24KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9u
Zz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5jb25kaXRpb25hbEF0dHIx
KCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDb25kaXRpb25h
bEF0dHIxLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RPYmpfY29uZGl0aW9uYWxBdHRyMSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyMUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjEiKTsKKyAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpfY29uZGl0aW9uYWxBdHRyMUdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjEiKTsKIH0KIAogI2VuZGlmCiAKICNpZiBFTkFC
TEUoQ29uZGl0aW9uMSkKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25h
bEF0dHIxU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RP
YmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjFTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDQ2NCwxNSArNDQ2NCwxNSBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25h
bEF0dHIxLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfY29uZGl0aW9uYWxBdHRyMSwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMVNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY29uZGl0aW9uYWxBdHRyMSIp
OworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial9j
b25kaXRpb25hbEF0dHIxU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJjb25kaXRpb25hbEF0dHIxIik7CiB9CiAKICNlbmRpZgogCiAjaWYgRU5B
QkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRpb24yKQotc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RPYmpfY29uZGl0aW9uYWxBdHRyMkdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZt
ID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00NDgwLDE1ICs0NDgwLDE1IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb24KICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgaW1wbC5jb25kaXRpb25hbEF0dHIyKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfY29uZGl0aW9uYWxBdHRyMiwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpnZXQ8anNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMkdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNvbmRpdGlv
bmFsQXR0cjIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rl
c3RPYmpfY29uZGl0aW9uYWxBdHRyMkdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjIi
KTsKIH0KIAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRp
dGlvbjIpCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMlNl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlz
T2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ial9j
b25kaXRpb25hbEF0dHIyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0g
PSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ1MDEsMTUgKzQ1MDEsMTUgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbgogICAgIHJldHVybiB0cnVlOwogfQog
Ci1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMiwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjIsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
c2V0PHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjIiKTsKKyAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfY29uZGl0aW9u
YWxBdHRyMlNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAiY29uZGl0aW9uYWxBdHRyMiIpOwogfQogCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25k
aXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RPYmpDb25kaXRpb25hbEF0dHIzR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjNHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDUxNywxNSArNDUxNywxNSBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwuY29uZGl0aW9uYWxBdHRyMygpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVG
SU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjMsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpz
VGVzdE9iakNvbmRpdGlvbmFsQXR0cjNHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25hbEF0dHIz
Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX2Nv
bmRpdGlvbmFsQXR0cjNHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25hbEF0dHIzIik7CiB9CiAK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQot
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjNTZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwg
SlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpfY29uZGl0aW9u
YWxBdHRyM1NldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0
T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC00NTM4LDEwMSArNDUzOCwxMDEgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbgogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMywgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNl
dEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjNTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjMiKTsKKyAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfY29uZGl0aW9uYWxBdHRy
M1NldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
Y29uZGl0aW9uYWxBdHRyMyIpOwogfQogCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24x
KQotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1
Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2Jq
JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial9jb25kaXRpb25h
bEF0dHI0Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIEpTVGVzdE9iamVjdEE6OmdldENvbnN0cnVjdG9yKEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgp
KTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0
cjRDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNU
ZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAiY29uZGl0aW9uYWxBdHRyNCIpOworICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial9jb25kaXRpb25hbEF0dHI0Q29uc3RydWN0
b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25hbEF0
dHI0Iik7CiB9CiAKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCi1zdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9yU2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3Qs
IEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqX2NvbmRpdGlv
bmFsQXR0cjRDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8m
IHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5n
IGEgYnVpbHQtaW4gY29uc3RydWN0b3IuCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExD
aGFyKj4oImNvbmRpdGlvbmFsQXR0cjQiKSwgc3RybGVuKCJjb25kaXRpb25hbEF0dHI0IikpLCB2
YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRp
b25hbEF0dHI0Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9jb25kaXRpb25hbEF0dHI0
Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakNvbmRpdGlv
bmFsQXR0cjRDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAiY29uZGl0aW9uYWxBdHRyNCIpOworICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial9jb25kaXRpb25hbEF0dHI0Q29uc3Ry
dWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgImNvbmRpdGlvbmFsQXR0cjQiKTsKIH0KIAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0
aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIpCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvckdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQogewog
ICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gSlNUZXN0
T2JqZWN0Qjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCks
IHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfY29uZGl0aW9uYWxBdHRy
NUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0
b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25hbEF0
dHI1Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2Jq
X2NvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjUiKTsKIH0KIAogI2VuZGlmCiAKICNpZiBFTkFC
TEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIpCi1zdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUg
dmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjVD
b25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNU
ZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQt
aW4gY29uc3RydWN0b3IuCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImNv
bmRpdGlvbmFsQXR0cjUiKSwgc3RybGVuKCJjb25kaXRpb25hbEF0dHI1IikpLCB2YWx1ZSk7CiB9
CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1
Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RF
RklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9jb25kaXRpb25hbEF0dHI1Q29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVD
b25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiY29uZGl0aW9uYWxBdHRyNSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial9jb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3JTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNvbmRp
dGlvbmFsQXR0cjUiKTsKIH0KIAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwg
RU5BQkxFKENvbmRpdGlvbjIpCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ29uZGl0
aW9uYWxBdHRyNkNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQogewogICAgIFVOVVNF
RF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gSlNUZXN0T2JqZWN0Qzo6
Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0
T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfY29uZGl0aW9uYWxBdHRyNkNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3JHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25hbEF0dHI2Iik7Cisg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX2NvbmRpdGlv
bmFsQXR0cjZDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgImNvbmRpdGlvbmFsQXR0cjYiKTsKIH0KIAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0
aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqX2NvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3Rv
clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0
aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3Ry
dWN0b3IuCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImNvbmRpdGlvbmFs
QXR0cjYiKSwgc3RybGVuKCJjb25kaXRpb25hbEF0dHI2IikpLCB2YWx1ZSk7CiB9CiAKLUpTQ19E
RUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNU
T01fU0VUVEVSKHNldEpTVGVzdE9ial9jb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3Rv
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
Y29uZGl0aW9uYWxBdHRyNiIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
c2V0PHNldEpTVGVzdE9ial9jb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNvbmRpdGlvbmFsQXR0
cjYiKTsKIH0KIAogI2VuZGlmCiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDYWNo
ZWRBdHRyaWJ1dGUxR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqX2Nh
Y2hlZEF0dHJpYnV0ZTFHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTVGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtNDY0NSwxMiArNDY0NSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0T2JqQ2FjaGVkQXR0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTEsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9jYWNoZWRBdHRyaWJ1dGUx
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OmdldDxqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY2Fj
aGVkQXR0cmlidXRlMSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0
PGpzVGVzdE9ial9jYWNoZWRBdHRyaWJ1dGUxR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY2FjaGVkQXR0cmli
dXRlMSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmli
dXRlMkdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2Jq
JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial9jYWNoZWRBdHRy
aWJ1dGUyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RP
YmomIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTQ2NjMsMTMgKzQ2NjMsMTMgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9i
akNhY2hlZEF0dAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfY2FjaGVkQXR0cmlidXRlMiwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+Ojpn
ZXQ8anNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMkdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNhY2hlZEF0dHJp
YnV0ZTIiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RP
YmpfY2FjaGVkQXR0cmlidXRlMkdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNhY2hlZEF0dHJpYnV0ZTIiKTsK
IH0KIAogI2lmIEVOQUJMRShDT05ESVRJT04pCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
T2JqQ2FjaGVkQXR0cmlidXRlM0dldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dE9ial9jYWNoZWRBdHRyaWJ1dGUzR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ2ODIsMTQgKzQ2ODIsMTQgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUpTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUzLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfY2FjaGVkQXR0
cmlidXRlMywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlM0dldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgImNhY2hlZEF0dHJpYnV0ZTMiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OmdldDxqc1Rlc3RPYmpfY2FjaGVkQXR0cmlidXRlM0dldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNhY2hl
ZEF0dHJpYnV0ZTMiKTsKIH0KIAogI2VuZGlmCiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RPYmpBbnlBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RP
YmpfYW55QXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTQ2OTcsMTIgKzQ2OTcsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdE9iakFueUF0dHJpYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExBbnk+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYW55QXR0
cmlidXRlKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpBbnlB
dHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVS
KGpzVGVzdE9ial9hbnlBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakFueUF0dHJpYnV0ZUdl
dHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgImFueUF0dHJpYnV0ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial9hbnlBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJh
bnlBdHRyaWJ1dGUiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakFueUF0
dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0
T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdE9ial9hbnlBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRv
JiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDcxNSwxMiArNDcxNSwxMiBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQW55QXR0cmliCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGUs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdE9ial9hbnlBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0
PHNldEpTVGVzdE9iakFueUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYW55QXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqX2FueUF0dHJpYnV0ZVNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYW55QXR0cmli
dXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpPYmplY3RBdHRyaWJ1
dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYg
dGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpfb2JqZWN0QXR0cmli
dXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmom
IHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTQ3MjgsMTIgKzQ3MjgsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak9i
amVjdEF0dAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExPYmpl
Y3Q+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwub2JqZWN0QXR0cmlidXRl
KCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpPYmplY3RBdHRy
aWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdE9ial9vYmplY3RBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak9iamVjdEF0dHJpYnV0
ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIm9iamVjdEF0dHJpYnV0ZSIpOworICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial9vYmplY3RBdHRyaWJ1dGVHZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJvYmplY3RBdHRyaWJ1dGUiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdE9iak9iamVjdEF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdE9ial9vYmplY3RBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2
YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDc0
NiwxMiArNDc0NiwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqT2JqZWN0QXR0
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RPYmpPYmplY3RBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9vYmplY3RBdHRyaWJ1dGUs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iak9iamVjdEF0dHJpYnV0ZVNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAib2JqZWN0
QXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0
SlNUZXN0T2JqX29iamVjdEF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAib2JqZWN0QXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb250ZW50RG9jdW1lbnRHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKK3N0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpfY29udGVudERvY3VtZW50R2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCiB7CiAgICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ3NTksMTIgKzQ3NTksMTIg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbnRlbnREbwogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8RG9jdW1lbnQ+PihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwg
QmluZGluZ1NlY3VyaXR5OjpjaGVja1NlY3VyaXR5Rm9yTm9kZShsZXhpY2FsR2xvYmFsT2JqZWN0
LCBpbXBsLmNvbnRlbnREb2N1bWVudCgpKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzVGVzdE9iakNvbnRlbnREb2N1bWVudCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX2NvbnRlbnREb2N1bWVudCwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8
anNUZXN0T2JqQ29udGVudERvY3VtZW50R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY29udGVudERvY3VtZW50
Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX2Nv
bnRlbnREb2N1bWVudEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNvbnRlbnREb2N1bWVudCIpOwogfQogCi1z
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTXV0YWJsZVBvaW50R2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqX211dGFibGVQb2ludEdldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQogewogICAg
IGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00NzcyLDEyICs0NzcyLDEy
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpNdXRhYmxlUG8KICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPFNWR1BvaW50Pj4obGV4
aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUs
IGltcGwubXV0YWJsZVBvaW50KCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihq
c1Rlc3RPYmpNdXRhYmxlUG9pbnQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdE9ial9tdXRhYmxlUG9pbnQsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak11
dGFibGVQb2ludEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm11dGFibGVQb2ludCIpOworICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial9tdXRhYmxlUG9pbnRHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJtdXRhYmxlUG9pbnQiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdE9iak11dGFibGVQb2ludFNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdE9ial9tdXRhYmxlUG9pbnRTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkK
IHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDc5MCwxMiAr
NDc5MCwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqTXV0YWJsZVBvCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpN
dXRhYmxlUG9pbnQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RF
RklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9tdXRhYmxlUG9pbnQsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iak11dGFibGVQb2ludFNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibXV0YWJsZVBvaW50Iik7CisgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqX211dGFibGVQ
b2ludFNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAibXV0YWJsZVBvaW50Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpT
dHJhd2JlcnJ5R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqX3N0cmF3
YmVycnlHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9i
aiYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtNDgwMywxMiArNDgwMywxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2Jq
U3RyYXdiZXJyCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExv
bmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYmx1ZWJlcnJ5KCkpKSk7
CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpTdHJhd2JlcnJ5LCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfc3Ry
YXdiZXJyeSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqU3RyYXdiZXJyeUdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0
cmF3YmVycnkiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rl
c3RPYmpfc3RyYXdiZXJyeUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0cmF3YmVycnkiKTsKIH0KIAotc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialN0cmF3YmVycnlTZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2
YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpfc3RyYXdiZXJyeVNldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0
LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC00ODIxLDEyICs0ODIxLDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RP
YmpTdHJhd2JlcnIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdE9ialN0cmF3YmVycnksIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9zdHJhd2JlcnJ5
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpTdHJhd2JlcnJ5U2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdHJhd2JlcnJ5
Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2Jq
X3N0cmF3YmVycnlTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgInN0cmF3YmVycnkiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dE9iakRlc2NyaXB0aW9uR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2Jq
X2Rlc2NyaXB0aW9uR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3RPYmomIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTQ4MzQsMTIgKzQ4MzQsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdE9iakRlc2NyaXB0aQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmRlc2NyaXB0
aW9uKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpEZXNjcmlw
dGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0T2JqX2Rlc2NyaXB0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpEZXNjcmlwdGlvbkdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgImRlc2NyaXB0aW9uIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpnZXQ8anNUZXN0T2JqX2Rlc2NyaXB0aW9uR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZGVzY3JpcHRp
b24iKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iaklkR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqX2lkR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYg
dm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ4NDcsMTIgKzQ4NDcsMTIgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iaklkR2V0dGVyKAogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLmlkKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RPYmpJZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0T2JqX2lkLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpJZEdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImlkIik7
CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX2lkR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiaWQiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9i
aklkU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmom
IHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
T2JqX2lkU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RP
YmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ4NjUsMTIgKzQ4NjUsMTIgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdE9iaklkU2V0dGVyKAogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVG
SU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqSWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9pZCwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqSWRTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImlkIik7CisgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqX2lkU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJpZCIpOwogfQogCi1zdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqSGFzaEdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdE9ial9oYXNoR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ4NzgsMTIgKzQ4NzgsMTIgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdE9iakhhc2hHZXR0ZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGltcGwuaGFzaCgpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2Jq
SGFzaCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0T2JqX2hhc2gsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakhhc2hHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJoYXNo
Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX2hh
c2hHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJoYXNoIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdE9ial9yZXBsYWNlYWJsZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8m
IHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00ODkxLDI0ICs0ODkxLDI0IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZXBsYWNlYWIKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgaW1wbC5yZXBsYWNlYWJsZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1KU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9yZXBsYWNlYWJs
ZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGVHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJyZXBsYWNlYWJsZUF0dHJpYnV0ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial9yZXBsYWNlYWJsZUF0dHJpYnV0ZUdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgInJlcGxhY2VhYmxlQXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVl
KQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ial9yZXBsYWNlYWJsZUF0dHJpYnV0ZVNl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlz
T2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gcHJvcGVydHku
CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oInJlcGxhY2VhYmxlQXR0cmli
dXRlIiksIHN0cmxlbigicmVwbGFjZWFibGVBdHRyaWJ1dGUiKSksIHZhbHVlKTsKIH0KIAotSlND
X0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRlLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RPYmpfcmVwbGFjZWFibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6c2V0PHNldEpTVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZXBsYWNlYWJsZUF0dHJpYnV0
ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9i
al9yZXBsYWNlYWJsZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVwbGFjZWFibGVBdHRyaWJ1dGUiKTsKIH0KIAotc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlRG91YmxlQXR0cmlidXRlR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3Qp
CitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqX251bGxhYmxlRG91YmxlQXR0cmlidXRl
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRo
aXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTQ5MTYsMTIgKzQ5MTYsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak51bGxh
YmxlRAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJs
ZTxJRExVbnJlc3RyaWN0ZWREb3VibGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLm51bGxhYmxlRG91YmxlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VT
VE9NX0dFVFRFUihqc1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX251bGxhYmxlRG91
YmxlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0dHJpYnV0ZUdl
dHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgIm51bGxhYmxlRG91YmxlQXR0cmlidXRlIik7CisgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX251bGxhYmxlRG91YmxlQXR0cmli
dXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAibnVsbGFibGVEb3VibGVBdHRyaWJ1dGUiKTsKIH0KIAotc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlTG9uZ0F0dHJpYnV0ZUdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0
KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial9udWxsYWJsZUxvbmdBdHRyaWJ1dGVH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhp
c09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
NDkyOSwxMiArNDkyOSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTnVsbGFi
bGVMCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxl
PElETExvbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm51bGxhYmxl
TG9uZ0F0dHJpYnV0ZSgpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0
T2JqTnVsbGFibGVMb25nQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfbnVsbGFibGVMb25nQXR0cmlidXRlLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46Omdl
dDxqc1Rlc3RPYmpOdWxsYWJsZUxvbmdBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJudWxsYWJs
ZUxvbmdBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46Omdl
dDxqc1Rlc3RPYmpfbnVsbGFibGVMb25nQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibnVsbGFi
bGVMb25nQXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpO
dWxsYWJsZUJvb2xlYW5BdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RPYmpfbnVsbGFibGVCb29sZWFuQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYg
dm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ5NDIsMTIgKzQ5NDIsMTIgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlQgogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExCb29sZWFuPj4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5udWxsYWJsZUJvb2xlYW5BdHRyaWJ1dGUoKSkp
KTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iak51bGxhYmxlQm9vbGVh
bkF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNUZXN0T2JqX251bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2Jq
TnVsbGFibGVCb29sZWFuQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibnVsbGFibGVCb29sZWFu
QXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNU
ZXN0T2JqX251bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm51bGxhYmxl
Qm9vbGVhbkF0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2Jq
TnVsbGFibGVTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RPYmpfbnVsbGFibGVTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2
bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDk1NSwxMiArNDk1NSwxMiBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVTCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETERPTVN0cmluZz4+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUoKSkp
KTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iak51bGxhYmxlU3RyaW5n
QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1Rlc3RPYmpfbnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak51
bGxhYmxlU3RyaW5nQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibnVsbGFibGVTdHJpbmdBdHRy
aWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RP
YmpfbnVsbGFibGVTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9y
OjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJudWxsYWJsZVN0cmlu
Z0F0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTnVsbGFi
bGVMb25nU2V0dGFibGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RPYmpfbnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDk2OCwxMiArNDk2OCwxMiBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVMCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETExvbmc+PihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmli
dXRlKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpOdWxsYWJs
ZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX251bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OmdldDxqc1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZUdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgIm51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX251bGxhYmxlTG9uZ1NldHRhYmxlQXR0
cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUiKTsK
IH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxl
QXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0T2JqX251bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUg
dmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ5
ODYsMTIgKzQ5ODYsMTIgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iak51bGxhYmxl
TAogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNU
ZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9u
dWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0
SlNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm51bGxhYmxlTG9uZ1NldHRhYmxl
QXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0
SlNUZXN0T2JqX251bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJudWxsYWJsZUxvbmdTZXR0YWJs
ZUF0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTnVsbGFi
bGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdE9ial9udWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCiB7CiAg
ICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ5OTksMTIgKzQ5OTks
MTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlUwogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExET01TdHJpbmc+
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm51bGxhYmxlU3RyaW5nU2V0
dGFibGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVz
dE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9udWxsYWJsZVN0cmluZ1NldHRh
YmxlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0
cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSIp
OworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial9udWxs
YWJsZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibnVsbGFibGVTdHJp
bmdTZXR0YWJsZUF0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVl
KQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ial9udWxsYWJsZVN0cmluZ1NldHRhYmxl
QXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6
OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTUwMTcsMTIgKzUwMTcsMTIgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdE9iak51bGxhYmxlUwogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0
dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX251bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1
dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iak51bGxhYmxlU3RyaW5nU2V0
dGFibGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgIm51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUiKTsKKyAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfbnVsbGFibGVTdHJp
bmdTZXR0YWJsZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAibnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSIpOwogfQog
Ci1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJs
ZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNU
ZXN0T2JqJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial9udWxs
YWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0g
PSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTUwMzAsMTIgKzUwMzAsMTIgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlVQogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExVU1ZTdHJpbmc+PihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVBdHRy
aWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9iak51bGxh
YmxlVVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlND
X0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial9udWxsYWJsZVVTVlN0cmluZ1NldHRhYmxl
QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0
cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0
ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ial9u
dWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibnVsbGFi
bGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0T2JqTnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZVNldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBK
U1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ial9udWxsYWJsZVVT
VlN0cmluZ1NldHRhYmxlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTUwNDgsMTIgKzUwNDgsMTIg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iak51bGxhYmxlVQogICAgIHJldHVybiB0
cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqTnVsbGFibGVV
U1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX251bGxhYmxlVVNW
U3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVz
dE9iak51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm51bGxhYmxlVVNWU3RyaW5nU2V0
dGFibGVBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNl
dDxzZXRKU1Rlc3RPYmpfbnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZVNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibnVsbGFibGVV
U1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKK3N0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpfbnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVB
dHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVz
dE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtNTA2MSwxMiArNTA2MSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
T2JqTnVsbGFibGVCCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TE51bGxhYmxlPElETEJ5dGVTdHJpbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLm51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUpT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpOdWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJs
ZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNUZXN0T2JqX251bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46Omdl
dDxqc1Rlc3RPYmpOdWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZUdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgIm51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlIik7CisgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX251bGxhYmxlQnl0ZVN0cmlu
Z1NldHRhYmxlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibnVsbGFibGVCeXRlU3RyaW5nU2V0
dGFibGVBdHRyaWJ1dGUiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iak51
bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUp
CitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqX251bGxhYmxlQnl0ZVN0cmluZ1NldHRh
YmxlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTUwNzksMTIgKzUwNzksMTIgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdE9iak51bGxhYmxlQgogICAgIHJldHVybiB0cnVlOwogfQogCi1K
U0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5nU2V0
dGFibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlND
X0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9udWxsYWJsZUJ5dGVTdHJpbmdTZXR0
YWJsZUF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0g
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqTnVsbGFi
bGVCeXRlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0
cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNU
ZXN0T2JqX251bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJudWxsYWJsZUJ5dGVTdHJp
bmdTZXR0YWJsZUF0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
T2JqQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqX2F0
dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0
T2JqJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC01MDkyLDEyICs1MDkyLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RP
YmpBdHRyaWJ1dGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
RE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0
ZSgpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQXR0cmlidXRl
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RP
YmpfYXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJhdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxq
c1Rlc3RPYmpfYXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYXR0cmlidXRlIik7CiB9CiAKLXN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlw
ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0
aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial9hdHRyaWJ1dGVXaXRo
UmVzZXJ2ZWRFbnVtVHlwZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC01MTA1LDEyICs1MTA1LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RPYmpBdHRyaWJ1dGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMRW51bWVyYXRpb248VGVzdE9iajo6T3B0aW9uYWw+PihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKCkpKSk7
CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVz
ZXJ2ZWRFbnVtVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9H
RVRURVIoanNUZXN0T2JqX2F0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxq
c1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZUdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImF0
dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX2F0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiYXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUiKTsKIH0KIAotc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBl
U2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRo
aXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2Jq
X2F0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7
CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTUxMjYsMTIgKzUx
MjYsMTIgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakF0dHJpYnV0ZQogICAgIHJl
dHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqQXR0
cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9hdHRyaWJ1dGVX
aXRoUmVzZXJ2ZWRFbnVtVHlwZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2Jq
QXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBl
Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2Jq
X2F0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJhdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlw
ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqVGVzdFJlYWRPbmx5Vm9p
ZFByb21pc2VBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RP
YmpfdGVzdFJlYWRPbmx5Vm9pZFByb21pc2VBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBhdXRv
JiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTEzOSwxMiArNTEzOSwxMiBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqVGVzdFJlYWRPCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFByb21pc2U8SURMVW5kZWZpbmVkPj4obGV4aWNh
bEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGlt
cGwudGVzdFJlYWRPbmx5Vm9pZFByb21pc2VBdHRyaWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialRlc3RSZWFkT25seVZvaWRQcm9taXNlQXR0cmlidXRl
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RP
YmpfdGVzdFJlYWRPbmx5Vm9pZFByb21pc2VBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialRl
c3RSZWFkT25seVZvaWRQcm9taXNlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6UmVqZWN0UHJvbWlzZT4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRl
c3RSZWFkT25seVZvaWRQcm9taXNlQXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX3Rlc3RSZWFkT25seVZvaWRQcm9taXNlQXR0cmli
dXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6UmVqZWN0UHJvbWlzZT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3RSZWFkT25seVZvaWRQcm9taXNlQXR0cmli
dXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0UmVhZE9ubHlQ
cm9taXNlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2Jq
X3Rlc3RSZWFkT25seVByb21pc2VBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9
IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTE1MiwxMiArNTE1MiwxMiBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0T2JqVGVzdFJlYWRPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETFByb21pc2U8SURMSW50ZXJmYWNlPFRlc3ROb2RlPj4+KGxl
eGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3Bl
LCBpbXBsLnRlc3RSZWFkT25seVByb21pc2VBdHRyaWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialRlc3RSZWFkT25seVByb21pc2VBdHRyaWJ1dGUsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ial90
ZXN0UmVhZE9ubHlQcm9taXNlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpUZXN0UmVhZE9u
bHlQcm9taXNlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6UmVqZWN0
UHJvbWlzZT4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3RSZWFkT25seVBy
b21pc2VBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46Omdl
dDxqc1Rlc3RPYmpfdGVzdFJlYWRPbmx5UHJvbWlzZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OlJlamVjdFByb21pc2U+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJ0ZXN0UmVhZE9ubHlQcm9taXNlQXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQorc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial9wdXRGb3J3YXJkc0F0dHJpYnV0ZUdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQog
ewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01MTY1LDEyICs1
MTY1LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpQdXRGb3J3YXIKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPFRlc3ROb2Rl
Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93
U2NvcGUsIGltcGwucHV0Rm9yd2FyZHNBdHRyaWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzVGVzdE9ialB1dEZvcndhcmRzQXR0cmlidXRlLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfcHV0Rm9yd2FyZHNB
dHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialB1dEZvcndhcmRzQXR0cmlidXRlR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAicHV0Rm9yd2FyZHNBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpfcHV0Rm9yd2FyZHNBdHRyaWJ1dGVHZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJwdXRGb3J3YXJkc0F0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkK
K3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpfcHV0Rm9yd2FyZHNBdHRyaWJ1dGVTZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09i
amVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtNTE4OCwxMiArNTE4OCwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0T2JqUHV0Rm9yd2FyCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0
T2JqX3B1dEZvcndhcmRzQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rl
c3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicHV0Rm9yd2FyZHNBdHRyaWJ1dGUiKTsKKyAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfcHV0Rm9yd2FyZHNB
dHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgInB1dEZvcndhcmRzQXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RPYmpQdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0T2JqX3B1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGVHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09i
amVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTIw
MSwxMiArNTIwMSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUHV0Rm9yd2Fy
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElE
TEludGVyZmFjZTxUZXN0Tm9kZT4+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5n
bG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5wdXRGb3J3YXJkc051bGxhYmxlQXR0cmli
dXRlKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpQdXRGb3J3
YXJkc051bGxhYmxlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfcHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZSwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpnZXQ8anNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpfcHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0
ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgInB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUiKTsKIH0KIAot
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1
dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYg
dGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RP
YmpfcHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQog
ewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01MjI0LDEyICs1
MjI0LDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpQdXRGb3J3YXIKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ialB1
dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9wdXRGb3J3YXJk
c051bGxhYmxlQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkK
IHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpQ
dXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJwdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlIik7
CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqX3B1
dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUiKTsK
IH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ2lmaWVyQXR0cmlidXRl
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRo
aXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqX3N0cmluZ2lmaWVyQXR0
cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RP
YmomIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTUyMzcsMTIgKzUyMzcsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9i
alN0cmluZ2lmaQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExV
U1ZTdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuc3RyaW5naWZp
ZXJBdHRyaWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9i
alN0cmluZ2lmaWVyQXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfc3RyaW5naWZpZXJBdHRyaWJ1dGUsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpz
VGVzdE9ialN0cmluZ2lmaWVyQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3RyaW5naWZpZXJB
dHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rl
c3RPYmpfc3RyaW5naWZpZXJBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9y
OjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdHJpbmdpZmllckF0
dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqU3RyaW5naWZp
ZXJBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RPYmpfc3RyaW5naWZpZXJBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkK
IHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTI1NSwxMiAr
NTI1NSwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqU3RyaW5naWZpCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpT
dHJpbmdpZmllckF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX3N0cmluZ2lmaWVyQXR0cmli
dXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpTdHJpbmdpZmllckF0dHJp
YnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAic3RyaW5naWZpZXJBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfc3RyaW5naWZpZXJBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0cmluZ2lmaWVyQXR0
cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25h
bGx5RXhwb3NlZFRvV2luZG93QXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0T2JqX2NvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGVHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVj
dCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTI2OCwx
MiArNTI2OCwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRv
d0F0dHJpYnV0ZSgpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2Jq
Q29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX2NvbmRpdGlvbmFsbHlFeHBv
c2VkVG9XaW5kb3dBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBv
c2VkVG9XaW5kb3dBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25hbGx5RXhwb3Nl
ZFRvV2luZG93QXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpnZXQ8anNUZXN0T2JqX2NvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGVHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJjb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QXR0cmlidXRlIik7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRv
V2luZG93QXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0T2JqX2NvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGVTZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09i
amVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtNTI4NiwxMiArNTI4NiwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0T2JqQ29uZGl0aW9uCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QXR0cmlidXRl
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RPYmpfY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0
ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9z
ZWRUb1dpbmRvd0F0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZSIp
OworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial9j
b25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjb25kaXRpb25hbGx5RXhwb3NlZFRv
V2luZG93QXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpD
b25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0T2JqX2NvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1
dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYg
dGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtNTI5OSwxMiArNTI5OSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ29u
ZGl0aW9uCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuY29uZGl0aW9uYWxseUV4cG9z
ZWRUb1dvcmtlckF0dHJpYnV0ZSgpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZSwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX2NvbmRpdGlv
bmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewot
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNvbmRpdGlv
bmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25h
bGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX2NvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRy
aWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmli
dXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5
RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqX2NvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRy
aWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9i
aiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtNTMxNywxMiArNTMxNywxMiBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2Vy
QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJ
TkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfY29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtl
ckF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQ29uZGl0aW9u
YWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0
dHJpYnV0ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpT
VGVzdE9ial9jb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjb25kaXRpb25hbGx5
RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlR2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNP
YmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqX2NvbmRpdGlvbmFsbHlFeHBv
c2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9
IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTMzMCwxMiArNTMzMCwxMiBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGltcGwuY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZSgp
KSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqQ29uZGl0aW9uYWxs
eUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX2NvbmRpdGlvbmFsbHlFeHBvc2Vk
VG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNvbmRpdGlvbmFs
bHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjb25k
aXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlIik7CisgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX2NvbmRpdGlvbmFsbHlFeHBv
c2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25h
bGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlIik7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2Vy
QXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0T2JqX2NvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGVT
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhp
c09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtNTM0OCw5ICs1MzQ4LDkgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdE9iakNvbmRpdGlvbgogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtl
ckF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVG
SU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0T2JqX2NvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5k
b3dBbmRXb3JrZXJBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9i
akNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGVTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNvbmRpdGlvbmFs
bHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfY29uZGl0aW9uYWxseUV4cG9zZWRU
b1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdv
cmtlckF0dHJpYnV0ZSIpOwogfQogCiBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqX2Rh
c2hfbGVhZGluZ19kYXNoX2h5cGhlbl9kYXNoX2F0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0KQpAQCAtNTM4NCw3
ICs1Mzg0LDcgQEAgSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9kYQogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial9kYXNoX2xl
YWRpbmdfZGFzaF9oeXBoZW5fZGFzaF9hdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIi1sZWFkaW5nLWh5cGhlbi1hdHRyaWJ1dGUi
KTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialRyYWlsaW5nX2Rhc2hfaHlw
aGVuX2Rhc2hfYXR0cmlidXRlX2Rhc2hfR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0T2JqX3RyYWlsaW5nX2Rhc2hfaHlwaGVuX2Rhc2hfYXR0cmlidXRlX2Rhc2hfR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmpl
Y3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTUzOTIs
MTIgKzUzOTIsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialRyYWlsaW5nXwog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudHJhaWxpbmdIeXBoZW5BdHRyaWJ1
dGUoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdE9ialRyYWlsaW5n
X2Rhc2hfaHlwaGVuX2Rhc2hfYXR0cmlidXRlX2Rhc2hfLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfdHJhaWxpbmdfZGFzaF9oeXBoZW5f
ZGFzaF9hdHRyaWJ1dGVfZGFzaF8sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialRyYWlsaW5nX2Rhc2hfaHlw
aGVuX2Rhc2hfYXR0cmlidXRlX2Rhc2hfR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidHJhaWxpbmctaHlwaGVu
LWF0dHJpYnV0ZS0iKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxq
c1Rlc3RPYmpfdHJhaWxpbmdfZGFzaF9oeXBoZW5fZGFzaF9hdHRyaWJ1dGVfZGFzaF9HZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJ0cmFpbGluZy1oeXBoZW4tYXR0cmlidXRlLSIpOwogfQogCi1zdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0T2JqVHJhaWxpbmdfZGFzaF9oeXBoZW5fZGFzaF9hdHRyaWJ1dGVf
ZGFzaF9TZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9i
aiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RPYmpfdHJhaWxpbmdfZGFzaF9oeXBoZW5fZGFzaF9hdHRyaWJ1dGVfZGFzaF9TZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwg
SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtNTQxMCwxMiArNTQxMCwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2Jq
VHJhaWxpbmdfCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RPYmpUcmFpbGluZ19kYXNoX2h5cGhlbl9kYXNoX2F0dHJpYnV0ZV9kYXNoXywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0T2JqX3RyYWlsaW5nX2Rhc2hfaHlwaGVuX2Rhc2hfYXR0cmlidXRlX2Rh
c2hfLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpUcmFpbGluZ19kYXNoX2h5
cGhlbl9kYXNoX2F0dHJpYnV0ZV9kYXNoX1NldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidHJhaWxpbmctaHlwaGVuLWF0dHJpYnV0ZS0iKTsKKyAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfdHJhaWxp
bmdfZGFzaF9oeXBoZW5fZGFzaF9hdHRyaWJ1dGVfZGFzaF9TZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInRyYWlsaW5nLWh5cGhlbi1hdHRyaWJ1
dGUtIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpMZWFkaW5nX3VuZGVy
c2NvcmVfYXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2Jq
X2xlYWRpbmdfdW5kZXJzY29yZV9hdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9
IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTQyMywxMiArNTQyMywxMiBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0T2JqTGVhZGluZ191CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgaW1wbC5sZWFkaW5nX3VuZGVyc2NvcmVfYXR0cmlidXRlKCkpKSk7CiB9CiAKLUpT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpMZWFkaW5nX3VuZGVyc2NvcmVfYXR0cmli
dXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RPYmpfbGVhZGluZ191bmRlcnNjb3JlX2F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqTGVh
ZGluZ191bmRlcnNjb3JlX2F0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImxlYWRpbmdfdW5kZXJz
Y29yZV9hdHRyaWJ1dGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46Omdl
dDxqc1Rlc3RPYmpfbGVhZGluZ191bmRlcnNjb3JlX2F0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ImxlYWRpbmdfdW5kZXJzY29yZV9hdHRyaWJ1dGUiKTsKIH0KIAotc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdE9iakxlYWRpbmdfdW5kZXJzY29yZV9hdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1
ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpfbGVhZGluZ191bmRlcnNj
b3JlX2F0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0g
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01NDQxLDkgKzU0NDEsOSBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0T2JqTGVhZGluZ191CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpT
Q19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpMZWFkaW5nX3VuZGVyc2NvcmVfYXR0
cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPYmpfbGVhZGluZ191bmRlcnNjb3JlX2F0dHJpYnV0ZSwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqTGVhZGluZ191bmRlcnNjb3JlX2F0
dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAibGVhZGluZ191bmRlcnNjb3JlX2F0dHJpYnV0ZSIpOworICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial9sZWFkaW5nX3VuZGVyc2NvcmVfYXR0
cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJsZWFkaW5nX3VuZGVyc2NvcmVfYXR0cmlidXRlIik7CiB9CiAKIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RPYmpfZG91YmxlX2xlYWRpbmdfdW5kZXJzY29yZV9hdHRyaWJ1dGVHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09i
amVjdCkKQEAgLTU0NzcsNyArNTQ3Nyw3IEBAIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RPYmpfZG8KICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRK
U1Rlc3RPYmpfZG91YmxlX2xlYWRpbmdfdW5kZXJzY29yZV9hdHRyaWJ1dGVTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIl9kb3VibGVfbGVhZGlu
Z191bmRlcnNjb3JlX2F0dHJpYnV0ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0T2JqVHJhaWxpbmdfdW5kZXJzY29yZV9hdHRyaWJ1dGVfR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCitzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0T2JqX3RyYWlsaW5nX3VuZGVyc2NvcmVfYXR0cmlidXRlX0dldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2Jq
ZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01NDg1
LDEyICs1NDg1LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpUcmFpbGluZ18K
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnRyYWlsaW5nX3VuZGVyc2NvcmVf
YXR0cmlidXRlXygpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2Jq
VHJhaWxpbmdfdW5kZXJzY29yZV9hdHRyaWJ1dGVfLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RPYmpfdHJhaWxpbmdfdW5kZXJzY29yZV9hdHRy
aWJ1dGVfLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpUcmFpbGluZ191bmRlcnNjb3JlX2F0dHJpYnV0ZV9H
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJ0cmFpbGluZ191bmRlcnNjb3JlX2F0dHJpYnV0ZV8iKTsKKyAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpfdHJhaWxpbmdfdW5k
ZXJzY29yZV9hdHRyaWJ1dGVfR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidHJhaWxpbmdfdW5kZXJzY29yZV9h
dHRyaWJ1dGVfIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpUcmFpbGlu
Z191bmRlcnNjb3JlX2F0dHJpYnV0ZV9TZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdE9iaiYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpfdHJhaWxpbmdfdW5kZXJzY29yZV9hdHRyaWJ1dGVfU2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNP
YmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTU1MDMsMTMgKzU1MDMsMTMgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdE9ialRyYWlsaW5nXwogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0T2JqVHJhaWxpbmdfdW5kZXJzY29yZV9hdHRyaWJ1dGVfLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RPYmpfdHJhaWxpbmdfdW5kZXJzY29yZV9hdHRyaWJ1dGVfLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpUcmFpbGluZ191bmRlcnNjb3JlX2F0dHJpYnV0ZV9T
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInRy
YWlsaW5nX3VuZGVyc2NvcmVfYXR0cmlidXRlXyIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ial90cmFpbGluZ191bmRlcnNjb3JlX2F0dHJpYnV0
ZV9TZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
InRyYWlsaW5nX3VuZGVyc2NvcmVfYXR0cmlidXRlXyIpOwogfQogCiAjaWYgRU5BQkxFKFRFU1Rf
RkVBVFVSRSkKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24xQm9keShKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0
eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhp
cykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbl9lbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uMUJvZHkoSlNDOjpKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5h
bWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7
CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTUyNyw3ICs1NTI3
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbjJC
b2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZy
YW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1Bh
cmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2VuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24yQm9keShK
U0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSog
Y2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0
ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC01NTQ2LDcgKzU1NDYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0CiAKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogCi1zdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkQXRSdW50aW1l
T3BlcmF0aW9uT3ZlcmxvYWREaXNwYXRjaGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJh
dGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2VuYWJsZWRB
dFJ1bnRpbWVPcGVyYXRpb25PdmVybG9hZERpc3BhdGNoZXIoSlNDOjpKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUg
SURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAg
ICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTU1NywyNCArNTU1Nywy
NCBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgICAgIEpT
VmFsdWUgZGlzdGluZ3Vpc2hpbmdBcmcgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDAp
OwogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCiAgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0Fy
Zy5pc051bWJlcigpKQotICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
IChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24yQm9k
eShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7CisgICAgICAg
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uX2VuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24yQm9keShsZXhpY2FsR2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoVEVTVF9GRUFU
VVJFKQotICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbjFCb2R5KGxleGljYWxHbG9i
YWxPYmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKKyAgICAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9lbmFibGVkQXRS
dW50aW1lT3BlcmF0aW9uMUJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0
ZWRUaGlzKSkpOwogI2VuZGlmCiAgICAgfQogICAgIHJldHVybiBhcmdzQ291bnQgPCAxID8gdGhy
b3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3Vn
aEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKSA6IHRocm93Vk1UeXBlRXJyb3Io
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRp
b24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uX2VuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkVuYWJsZWRB
dFJ1bnRpbWVPcGVyYXRpb25PdmVybG9hZERpc3BhdGNoZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAiZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbiIpOworICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9l
bmFibGVkQXRSdW50aW1lT3BlcmF0aW9uT3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgImVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24iKTsKIH0KIAog
I2VuZGlmCiAKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25FbmFibGVkQXRSdW50aW1l
T3BlcmF0aW9uU3RhdGljQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25fZW5hYmxlZEF0UnVudGltZU9w
ZXJhdGlvblN0YXRpY0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC01NTkwLDE0ICs1NTkwLDE0IEBAIHN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3Ry
dWN0b3JGdW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWMsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25fZW5hYmxlZEF0
UnVudGltZU9wZXJhdGlvblN0YXRpYywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpjYWxsU3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25FbmFibGVk
QXRSdW50aW1lT3BlcmF0aW9uU3RhdGljQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJlbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uU3RhdGljIik7CisgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsU3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yRnVu
Y3Rpb25fZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblN0YXRpY0JvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAiZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblN0YXRpYyIpOwog
fQogCiAjZW5kaWYKIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVy
ZUVuYWJsZWRCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
Qzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+
OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2VuYWJsZWRJblNwZWNpZmljV29ybGRX
aGVuUnVudGltZUZlYXR1cmVFbmFibGVkQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRv
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01NjE0LDEyICs1NjE0LDEyIEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRp
bWVGZWF0dXJlRW5hYmxlZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25fZW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVy
ZUVuYWJsZWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2Fs
bDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVu
dGltZUZlYXR1cmVFbmFibGVkQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJlbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZCIpOworICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbl9lbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZEJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW5hYmxlZEluU3BlY2lmaWNX
b3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV29ybGRTcGVjaWZpY01l
dGhvZEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNs
YXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd29ybGRTcGVjaWZpY01ldGhvZEJvZHkoSlND
OjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVy
IGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtNTYzNiwxMiArNTYzNiwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAot
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV29ybGRT
cGVjaWZpY01ldGhvZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25fd29ybGRTcGVjaWZpY01ldGhvZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV29y
bGRTcGVjaWZpY01ldGhvZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
d29ybGRTcGVjaWZpY01ldGhvZCIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2Jq
Pjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93b3JsZFNwZWNpZmljTWV0aG9kQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ3b3JsZFNwZWNpZmljTWV0aG9k
Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdEJvZHkoSlNDOjpKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5h
bWUgSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRl
ciBjYXN0ZWRUaGlzLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCitzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY2FsY3Vs
YXRlU2VjcmV0UmVzdWx0Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb25SZXR1
cm5pbmdQcm9taXNlPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMsIFJlZjxE
ZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC01NjUzLDEyICs1NjUzLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25DYWxjdWxhdGVTZWNyZXRSZXN1bHQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2NhbGN1bGF0ZVNlY3JldFJlc3VsdCwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdEJvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY2FsY3VsYXRlU2VjcmV0UmVzdWx0
Iik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jYWxjdWxhdGVTZWNyZXRSZXN1bHRCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNhbGN1bGF0ZVNlY3JldFJlc3Vs
dCIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25HZXRTZWNyZXRCb29sZWFuQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9n
ZXRTZWNyZXRCb29sZWFuQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNU
ZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01NjY4LDEzICs1NjY4LDEzIEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQm9vbGVhbj4oaW1wbC5nZXRTZWNyZXRC
b29sZWFuKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkdldFNlY3JldEJvb2xlYW4sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2dldFNlY3JldEJvb2xlYW4sIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewot
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkdldFNlY3JldEJvb2xlYW5Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgImdldFNlY3JldEJvb2xlYW4iKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fZ2V0U2VjcmV0Qm9vbGVh
bkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZ2V0U2VjcmV0Qm9vbGVh
biIpOwogfQogCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLXN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2Vj
cmV0Qm9vbGVhbkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fdGVzdEZlYXR1cmVHZXRTZWNyZXRC
b29sZWFuQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6
OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC01Njg0LDE0ICs1Njg0LDE0IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQm9vbGVhbj4oaW1wbC50ZXN0RmVhdHVyZUdldFNlY3Jl
dEJvb2xlYW4oKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl90ZXN0RmVhdHVyZUdl
dFNlY3JldEJvb2xlYW4sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2Jq
Pjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9v
bGVhbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdEZlYXR1cmVH
ZXRTZWNyZXRCb29sZWFuIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+Ojpj
YWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVh
bkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdEZlYXR1cmVHZXRT
ZWNyZXRCb29sZWFuIik7CiB9CiAKICNlbmRpZgogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25VbmRlZmluZWRNZXRob2RCb2R5KEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBj
YWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRl
ciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uX3VuZGVmaW5lZE1ldGhvZEJvZHkoSlNDOjpKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5h
bWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7
CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTcwMywxMiArNTcw
MywxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVW5kZWZpbmVkTWV0aG9kLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl91bmRl
ZmluZWRNZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblVuZGVmaW5lZE1ldGhvZEJvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidW5kZWZpbmVkTWV0aG9kIik7CisgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uX3VuZGVmaW5lZE1ldGhvZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAidW5kZWZpbmVkTWV0aG9kIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblVuZGVmaW5lZE1ldGhvZFdpdGhBcmdzQm9k
eShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJh
bWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbl91bmRlZmluZWRNZXRob2RXaXRoQXJnc0JvZHkoSlNDOjpK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNh
c3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
NTczMSwxMiArNTczMSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVW5kZWZpbmVk
TWV0aG9kV2l0aEFyZ3MsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX3VuZGVmaW5lZE1ldGhvZFdpdGhBcmdzLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25VbmRlZmluZWRNZXRob2RXaXRoQXJnc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAidW5kZWZpbmVkTWV0aG9kV2l0aEFyZ3MiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fdW5kZWZpbmVk
TWV0aG9kV2l0aEFyZ3NCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInVu
ZGVmaW5lZE1ldGhvZFdpdGhBcmdzIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2RCb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0
ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uX2J5dGVNZXRob2RCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJh
dGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8m
IHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTU3NDYsMTIgKzU3NDYsMTIgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExCeXRlPihpbXBsLmJ5dGVN
ZXRob2QoKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQnl0ZU1ldGhvZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fYnl0ZU1ldGhvZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnl0
ZU1ldGhvZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiYnl0ZU1ldGhv
ZCIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl9ieXRlTWV0aG9kQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJieXRlTWV0aG9kIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2RXaXRoQXJnc0JvZHko
SlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1l
dGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25fYnl0ZU1ldGhvZFdpdGhBcmdzQm9keShKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0
eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhp
cykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01NzcyLDEy
ICs1NzcyLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURM
Qnl0ZT4oaW1wbC5ieXRlTWV0aG9kV2l0aEFyZ3MoV1RGTW92ZShieXRlQXJnKSwgV1RGTW92ZShz
dHJBcmcpLCAqb2JqQXJnKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uQnl0ZU1ldGhvZFdpdGhBcmdzLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9ieXRlTWV0aG9kV2l0aEFy
Z3MsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2RXaXRoQXJnc0JvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiYnl0ZU1ldGhvZFdpdGhBcmdzIik7CisgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X2J5dGVNZXRob2RXaXRoQXJnc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAiYnl0ZU1ldGhvZFdpdGhBcmdzIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kQm9keShKU0M6OkpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZy
YW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2Fz
dGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbl9vY3RldE1ldGhvZEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0
byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTc4NywxMiArNTc4NywxMiBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETE9jdGV0PihpbXBsLm9j
dGV0TWV0aG9kKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vY3RldE1ldGhvZCwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT2N0ZXRNZXRob2RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm9j
dGV0TWV0aG9kIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX29jdGV0TWV0aG9kQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJvY3RldE1ldGhvZCIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZFdp
dGhBcmdzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6
OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vY3RldE1ldGhvZFdpdGhBcmdzQm9keShK
U0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSog
Y2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0
ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC01ODEzLDEyICs1ODEzLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKHRvSlM8SURMT2N0ZXQ+KGltcGwub2N0ZXRNZXRob2RXaXRoQXJncyhXVEZNb3ZlKG9jdGV0
QXJnKSwgV1RGTW92ZShzdHJBcmcpLCAqb2JqQXJnKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0ZXRNZXRob2RXaXRoQXJncywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25f
b2N0ZXRNZXRob2RXaXRoQXJncywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0ZXRNZXRob2RXaXRoQXJn
c0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAib2N0ZXRNZXRob2RXaXRo
QXJncyIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9vY3RldE1ldGhvZFdpdGhBcmdzQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJvY3RldE1ldGhvZFdpdGhBcmdzIik7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxv
bmdNZXRob2RCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
Qzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+
OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2xvbmdNZXRob2RCb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0
ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTU4
MjgsMTIgKzU4MjgsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9K
UzxJRExMb25nPihpbXBsLmxvbmdNZXRob2QoKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbG9uZ01ldGhvZCwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAibG9uZ01ldGhvZCIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9sb25nTWV0aG9kQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJsb25nTWV0aG9kIik7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxv
bmdNZXRob2RXaXRoQXJnc0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbG9uZ01ldGhvZFdpdGhB
cmdzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNh
bGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xh
c3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC01ODU0LDEyICs1ODU0LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKHRvSlM8SURMTG9uZz4oaW1wbC5sb25nTWV0aG9kV2l0aEFyZ3MoV1RGTW92
ZShsb25nQXJnKSwgV1RGTW92ZShzdHJBcmcpLCAqb2JqQXJnKSkpKTsKIH0KIAotSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhB
cmdzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbl9sb25nTWV0aG9kV2l0aEFyZ3MsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2RXaXRo
QXJnc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibG9uZ01ldGhvZFdp
dGhBcmdzIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uX2xvbmdNZXRob2RXaXRoQXJnc0JvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibG9uZ01ldGhvZFdpdGhBcmdzIik7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9i
ak1ldGhvZEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlND
OjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb2JqTWV0aG9kQm9keShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1l
LCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVk
VGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01ODY5
LDEyICs1ODY5LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8
SURMSW50ZXJmYWNlPFRlc3RPYmo+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMt
Pmdsb2JhbE9iamVjdCgpLCBpbXBsLm9iak1ldGhvZCgpKSkpOwogfQogCi1KU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2QsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX29iak1ldGhv
ZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJvYmpNZXRob2QiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb2JqTWV0aG9kQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJvYmpNZXRob2QiKTsKIH0KIAotc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2Jq
TWV0aG9kV2l0aEFyZ3NCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX29iak1ldGhvZFdpdGhBcmdz
Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxG
cmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQ
YXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC01ODk1LDEyICs1ODk1LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBpbXBsLm9iak1ldGhvZFdpdGhBcmdzKFdU
Rk1vdmUobG9uZ0FyZyksIFdURk1vdmUoc3RyQXJnKSwgKm9iakFyZykpKSk7CiB9CiAKLUpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdp
dGhBcmdzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbl9vYmpNZXRob2RXaXRoQXJncywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0
aEFyZ3NCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm9iak1ldGhvZFdp
dGhBcmdzIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uX29iak1ldGhvZFdpdGhBcmdzQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJvYmpNZXRob2RXaXRoQXJncyIpOwogfQogCi1zdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqSW5zdGFuY2VGdW5jdGlvblVuZm9y
Z2VhYmxlTWV0aG9kQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0
T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpJbnN0YW5jZUZ1bmN0aW9uX3VuZm9yZ2VhYmxlTWV0aG9kQm9k
eShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJh
bWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC01OTEwLDEyICs1OTEwLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKHRvSlM8SURMTG9uZz4oaW1wbC51bmZvcmdlYWJsZU1ldGhvZCgpKSkpOwogfQogCi1K
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2Vh
YmxlTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpJbnN0YW5j
ZUZ1bmN0aW9uX3VuZm9yZ2VhYmxlTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxl
TWV0aG9kQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ1bmZvcmdlYWJs
ZU1ldGhvZCIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rl
c3RPYmpJbnN0YW5jZUZ1bmN0aW9uX3VuZm9yZ2VhYmxlTWV0aG9kQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJ1bmZvcmdlYWJsZU1ldGhvZCIpOwogfQogCi1zdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5h
bWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25fbWV0aG9kV2l0aEFyZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdCb2R5KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUs
IHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRU
aGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTU5MzIs
MTIgKzU5MzIsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBcmdU
cmVhdGluZ051bGxBc0VtcHR5U3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoQXJnVHJlYXRpbmdOdWxsQXNFbXB0
eVN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxs
PGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFyZ1RyZWF0aW5nTnVsbEFzRW1w
dHlTdHJpbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdp
dGhBcmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhB
cmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJtZXRob2RXaXRoQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyIpOwogfQog
Ci1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoWFBhdGhOU1Jlc29sdmVyUGFyYW1ldGVyQm9keShKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0
eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhp
cykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbl9tZXRob2RXaXRoWFBhdGhOU1Jlc29sdmVyUGFyYW1ldGVyQm9keShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1l
LCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVk
VGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01OTU0
LDEyICs1OTU0LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoWFBh
dGhOU1Jlc29sdmVyUGFyYW1ldGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoWFBhdGhOU1Jlc29sdmVyUGFyYW1ldGVy
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoWFBhdGhOU1Jlc29sdmVyUGFyYW1ldGVyQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoWFBhdGhOU1Jl
c29sdmVyUGFyYW1ldGVyIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+Ojpj
YWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhYUGF0aE5TUmVzb2x2ZXJQ
YXJhbWV0ZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdp
dGhYUGF0aE5TUmVzb2x2ZXJQYXJhbWV0ZXIiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTdHJpbmdNZXRo
b2RCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFz
c1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX251bGxhYmxlU3RyaW5nTWV0aG9kQm9keShKU0M6
OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2Fs
bEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIg
Y2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC01OTY5LDEyICs1OTY5LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2Rl
KHRvSlM8SURMTnVsbGFibGU8SURMRE9NU3RyaW5nPj4oKmxleGljYWxHbG9iYWxPYmplY3QsIGlt
cGwubnVsbGFibGVTdHJpbmdNZXRob2QoKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTdHJpbmdNZXRob2QsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX251bGxh
YmxlU3RyaW5nTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmluZ01ldGhvZEJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibnVsbGFibGVTdHJpbmdNZXRo
b2QiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25fbnVsbGFibGVTdHJpbmdNZXRob2RCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgIm51bGxhYmxlU3RyaW5nTWV0aG9kIik7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9u
TnVsbGFibGVTdHJpbmdTdGF0aWNNZXRob2RCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbl9udWxsYWJs
ZVN0cmluZ1N0YXRpY01ldGhvZEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBhdXRvJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01OTgzLDEyICs1OTgzLDEyIEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMTnVsbGFibGU8SURMRE9NU3RyaW5nPj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIFRlc3RPYmo6Om51bGxhYmxlU3RyaW5nU3RhdGljTWV0aG9k
KCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3Rv
ckZ1bmN0aW9uTnVsbGFibGVTdHJpbmdTdGF0aWNNZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25fbnVsbGFibGVTdHJpbmdTdGF0
aWNNZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2Fs
bFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uTnVsbGFibGVTdHJpbmdTdGF0aWNN
ZXRob2RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm51bGxhYmxlU3Ry
aW5nU3RhdGljTWV0aG9kIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+Ojpj
YWxsU3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25fbnVsbGFibGVTdHJpbmdTdGF0
aWNNZXRob2RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm51bGxhYmxl
U3RyaW5nU3RhdGljTWV0aG9kIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU3RyaW5nU3BlY2lhbE1ldGhv
ZEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNz
UGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbnVsbGFibGVTdHJpbmdTcGVjaWFsTWV0aG9kQm9k
eShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJh
bWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC02MDAzLDEyICs2MDAzLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKHRvSlM8SURMTnVsbGFibGU8SURMRE9NU3RyaW5nPj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIGltcGwubnVsbGFibGVTdHJpbmdTcGVjaWFsTWV0aG9kKFdURk1vdmUoaW5kZXgpKSkpKTsK
IH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TnVsbGFibGVTdHJpbmdTcGVjaWFsTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9udWxsYWJsZVN0cmluZ1NwZWNpYWxNZXRob2Qs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU3RyaW5nU3BlY2lhbE1ldGhvZEJvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibnVsbGFibGVTdHJpbmdTcGVjaWFsTWV0aG9k
Iik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX251bGxhYmxlU3RyaW5nU3BlY2lhbE1ldGhvZEJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibnVsbGFibGVTdHJpbmdTcGVjaWFsTWV0aG9kIik7
CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhFbnVtQXJnQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRo
b2RXaXRoRW51bUFyZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjAyNSwxMiArNjAyNSwxMiBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEVudW1BcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhFbnVtQXJnLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRW51bUFyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aEVudW1BcmciKTsKKyAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0
aEVudW1BcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdp
dGhFbnVtQXJnIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTdGFuZGFsb25lRW51bUFyZ0JvZHkoSlND
OjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVy
IGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aFN0YW5kYWxvbmVFbnVtQXJnQm9keShKU0M6OkpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZy
YW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2Fz
dGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02
MDQ3LDEyICs2MDQ3LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
U3RhbmRhbG9uZUVudW1BcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhTdGFuZGFsb25lRW51bUFyZywgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0g
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aFN0YW5kYWxvbmVFbnVtQXJnQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoU3RhbmRhbG9uZUVudW1BcmciKTsKKyAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25fbWV0aG9kV2l0aFN0YW5kYWxvbmVFbnVtQXJnQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoU3RhbmRhbG9uZUVudW1BcmciKTsKIH0KIAotc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9k
V2l0aE9wdGlvbmFsRW51bUFyZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9u
PEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjA2NywxMiArNjA2NywxMiBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZywgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0
aE9wdGlvbmFsRW51bUFyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RP
Ymo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRW51
bUFyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9w
dGlvbmFsRW51bUFyZyIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2Fs
bDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxF
bnVtQXJnIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmdBbmREZWZhdWx0VmFs
dWVCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFz
c1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbEVudW1BcmdBbmRE
ZWZhdWx0VmFsdWVCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RP
Ymo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTYwODcsMTIgKzYwODcsMTIgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmdBbmREZWZhdWx0VmFsdWUsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21l
dGhvZFdpdGhPcHRpb25hbEVudW1BcmdBbmREZWZhdWx0VmFsdWUsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmdBbmREZWZhdWx0VmFsdWVCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmdBbmREZWZh
dWx0VmFsdWUiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZ0FuZERlZmF1
bHRWYWx1ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0
aE9wdGlvbmFsRW51bUFyZ0FuZERlZmF1bHRWYWx1ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVx
dWlyZXNBbGxBcmdzQW5kVGhyb3dzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRp
b248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RUaGF0
UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRv
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02MTEwLDEyICs2MTEwLDEyIEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RP
Ymo+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCB0
aHJvd1Njb3BlLCBpbXBsLm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MoV1RGTW92
ZShzdHJBcmcpLCAqb2JqQXJnKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93
cywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25fbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cywgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93c0JvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyIpOwor
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbl9tZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5k
VGhyb3dzIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVU1ZTdHJpbmdBcmdCb2R5KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUs
IHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRU
aGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uX21ldGhvZFdpdGhVU1ZTdHJpbmdBcmdCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1l
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewog
ICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTYxMzIsMTIgKzYxMzIs
MTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVU1ZTdHJpbmdBcmcs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X21ldGhvZFdpdGhVU1ZTdHJpbmdBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVU1ZT
dHJpbmdBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdp
dGhVU1ZTdHJpbmdBcmciKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNh
bGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aFVTVlN0cmluZ0FyZ0JvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aFVTVlN0cmluZ0Fy
ZyIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTnVsbGFibGVVU1ZTdHJpbmdBcmdCb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0
ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhOdWxsYWJsZVVTVlN0cmluZ0FyZ0JvZHkoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3Rl
ZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjE1
NCwxMiArNjE1NCwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE51
bGxhYmxlVVNWU3RyaW5nQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoTnVsbGFibGVVU1ZTdHJpbmdBcmcsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOdWxsYWJsZVVTVlN0cmluZ0FyZ0JvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE51bGxhYmxlVVNWU3RyaW5nQXJn
Iik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhOdWxsYWJsZVVTVlN0cmluZ0FyZ0JvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE51bGxhYmxlVVNWU3RyaW5n
QXJnIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVU1ZTdHJpbmdBcmdUcmVhdGluZ051bGxBc0VtcHR5
U3RyaW5nQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6
OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoVVNWU3RyaW5nQXJnVHJl
YXRpbmdOdWxsQXNFbXB0eVN0cmluZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0
aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjE3NiwxMiArNjE3NiwxMiBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVTVlN0cmluZ0FyZ1RyZWF0aW5nTnVs
bEFzRW1wdHlTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhVU1ZTdHJpbmdBcmdUcmVhdGluZ051bGxBc0VtcHR5
U3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVVNWU3RyaW5nQXJnVHJlYXRpbmdO
dWxsQXNFbXB0eVN0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
bWV0aG9kV2l0aFVTVlN0cmluZ0FyZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciKTsKKyAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25fbWV0aG9kV2l0aFVTVlN0cmluZ0FyZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhVU1ZTdHJpbmdB
cmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhCeXRlU3Ry
aW5nQXJnQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6
OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoQnl0ZVN0cmluZ0FyZ0Jv
ZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFy
YW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtNjE5OCwxMiArNjE5OCwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aEJ5dGVTdHJpbmdBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhCeXRlU3RyaW5nQXJnLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
LSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoQnl0ZVN0cmluZ0FyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aEJ5dGVTdHJpbmdBcmciKTsKKyAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25f
bWV0aG9kV2l0aEJ5dGVTdHJpbmdBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgIm1ldGhvZFdpdGhCeXRlU3RyaW5nQXJnIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOdWxs
YWJsZUJ5dGVTdHJpbmdBcmdCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhOdWxs
YWJsZUJ5dGVTdHJpbmdBcmdCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTYyMjAsMTIgKzYyMjAsMTIgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOdWxsYWJsZUJ5dGVTdHJpbmdBcmcsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhv
ZFdpdGhOdWxsYWJsZUJ5dGVTdHJpbmdBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhO
dWxsYWJsZUJ5dGVTdHJpbmdBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgIm1ldGhvZFdpdGhOdWxsYWJsZUJ5dGVTdHJpbmdBcmciKTsKKyAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9k
V2l0aE51bGxhYmxlQnl0ZVN0cmluZ0FyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAibWV0aG9kV2l0aE51bGxhYmxlQnl0ZVN0cmluZ0FyZyIpOwogfQogCi1zdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoQnl0ZVN0cmluZ0FyZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdCb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0
ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhCeXRlU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0
cmluZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNs
YXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtNjI0MiwxMiArNjI0MiwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aEJ5dGVTdHJpbmdBcmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9t
ZXRob2RXaXRoQnl0ZVN0cmluZ0FyZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewot
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhCeXRlU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmlu
Z0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aEJ5dGVT
dHJpbmdBcmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nIik7CisgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdp
dGhCeXRlU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ0JvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aEJ5dGVTdHJpbmdBcmdUcmVhdGluZ051
bGxBc0VtcHR5U3RyaW5nIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblNlcmlhbGl6ZWRWYWx1ZUJvZHkoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3Rl
ZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25fc2VyaWFsaXplZFZhbHVlQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02MjY0LDEyICs2MjY0LDEyIEBA
IHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TZXJpYWxpemVkVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3NlcmlhbGl6ZWRW
YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU2VyaWFsaXplZFZhbHVlQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJzZXJpYWxpemVkVmFsdWUiKTsKKyAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fc2Vy
aWFsaXplZFZhbHVlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJzZXJp
YWxpemVkVmFsdWUiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFJlY29yZEJvZHkoSlNDOjpKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
dHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRo
aXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25fbWV0aG9kV2l0aFJlY29yZEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0
byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjI4NiwxMiArNjI4NiwxMiBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFJlY29yZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aFJl
Y29yZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFJlY29yZEJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aFJlY29yZCIpOworICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9t
ZXRob2RXaXRoUmVjb3JkQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJt
ZXRob2RXaXRoUmVjb3JkIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb25Cb2R5KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxs
RnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBj
YXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhFeGNlcHRpb25Cb2R5KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVu
YW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQog
ewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTYzMDMsMTIgKzYz
MDMsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb24s
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X21ldGhvZFdpdGhFeGNlcHRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRp
b25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhFeGNl
cHRpb24iKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aEV4Y2VwdGlvbkJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aEV4Y2VwdGlvbiIpOwogfQogCi1zdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoRXhjZXB0aW9uUmV0dXJuaW5nTG9uZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUg
SURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25f
bWV0aG9kV2l0aEV4Y2VwdGlvblJldHVybmluZ0xvbmdCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1l
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewog
ICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTYzMTgsMTIgKzYzMTgs
MTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExMb25nPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5tZXRob2RXaXRoRXhjZXB0aW9u
UmV0dXJuaW5nTG9uZygpKSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uUmV0dXJuaW5nTG9uZywgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0
aG9kV2l0aEV4Y2VwdGlvblJldHVybmluZ0xvbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhFeGNlcHRpb25SZXR1cm5pbmdMb25nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJtZXRob2RXaXRoRXhjZXB0aW9uUmV0dXJuaW5nTG9uZyIpOworICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9t
ZXRob2RXaXRoRXhjZXB0aW9uUmV0dXJuaW5nTG9uZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aEV4Y2VwdGlvblJldHVybmluZ0xvbmciKTsKIH0KIAot
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aEV4Y2VwdGlvblJldHVybmluZ09iamVjdEJvZHkoSlNDOjpKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlw
ZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMp
CitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25fbWV0aG9kV2l0aEV4Y2VwdGlvblJldHVybmluZ09iamVjdEJvZHkoSlNDOjpKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
dHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRo
aXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjMzMywx
MiArNjMzMywxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElE
TEludGVyZmFjZTxUZXN0T2JqPj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5n
bG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5tZXRob2RXaXRoRXhjZXB0aW9uUmV0dXJu
aW5nT2JqZWN0KCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdPYmplY3QsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhv
ZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdPYmplY3QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhFeGNlcHRpb25SZXR1cm5pbmdPYmplY3RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgIm1ldGhvZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdPYmplY3QiKTsKKyAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25fbWV0aG9kV2l0aEV4Y2VwdGlvblJldHVybmluZ09iamVjdEJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aEV4Y2VwdGlvblJldHVybmluZ09iamVjdCIp
OwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25DdXN0b21NZXRob2RCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJh
dGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2N1c3RvbU1l
dGhvZEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNs
YXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtNjM0NywxMiArNjM0NywxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChK
U1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+Y3VzdG9tTWV0aG9kKCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jdXN0b21NZXRob2QsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewot
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkN1c3RvbU1ldGhvZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAiY3VzdG9tTWV0aG9kIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+
OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2N1c3RvbU1ldGhvZEJvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY3VzdG9tTWV0aG9kIik7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1
c3RvbU1ldGhvZFdpdGhBcmdzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jdXN0b21NZXRob2RX
aXRoQXJnc0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlND
OjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtNjM2MSwxMiArNjM2MSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
IChKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+Y3VzdG9tTWV0aG9kV2l0aEFyZ3MoKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUpKSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2RXaXRoQXJncywgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY3Vz
dG9tTWV0aG9kV2l0aEFyZ3MsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZFdpdGhBcmdz
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjdXN0b21NZXRob2RXaXRo
QXJncyIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9jdXN0b21NZXRob2RXaXRoQXJnc0JvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY3VzdG9tTWV0aG9kV2l0aEFyZ3MiKTsKIH0KIAotc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
UHJpdmF0ZU1ldGhvZEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fcHJpdmF0ZU1ldGhvZEJvZHko
SlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1l
dGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtNjM4MSwxMiArNjM4MSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVu
Y29kZSh0b0pTPElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIGltcGwucHJpdmF0
ZU1ldGhvZChXVEZNb3ZlKGFyZ3VtZW50KSkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblByaXZhdGVNZXRob2QsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3ByaXZhdGVNZXRo
b2QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvblByaXZhdGVNZXRob2RCb2R5LCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInByaXZh
dGVNZXRob2QiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fcHJpdmF0ZU1ldGhvZEJvZHksIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAicHJp
dmF0ZU1ldGhvZCIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25QdWJsaWNBbmRQcml2YXRlTWV0aG9kQm9keShKU0M6OkpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZy
YW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2Fz
dGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbl9wdWJsaWNBbmRQcml2YXRlTWV0aG9kQm9keShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBl
bmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykK
IHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02NDAxLDEyICs2
NDAxLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9N
U3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgaW1wbC5wdWJsaWNBbmRQcml2YXRlTWV0aG9k
KFdURk1vdmUoYXJndW1lbnQpKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUHVibGljQW5kUHJpdmF0ZU1ldGhvZCwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fcHVibGljQW5k
UHJpdmF0ZU1ldGhvZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+
OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUHVibGljQW5kUHJpdmF0ZU1ldGhvZEJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAicHVibGljQW5kUHJpdmF0ZU1l
dGhvZCIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9wdWJsaWNBbmRQcml2YXRlTWV0aG9kQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJwdWJsaWNBbmRQcml2YXRlTWV0aG9kIik7CiB9CiAK
LXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkFkZEV2ZW50TGlzdGVuZXJCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2FkZEV2ZW50TGlz
dGVuZXJCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpD
bGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTY0MzAsMTIgKzY0MzAsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2FkZEV2ZW50TGlzdGVuZXIsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkFkZEV2ZW50TGlzdGVuZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImFkZEV2ZW50TGlzdGVuZXIiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fYWRkRXZlbnRMaXN0ZW5lckJvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiYWRkRXZlbnRMaXN0ZW5lciIpOwog
fQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVyQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9yZW1v
dmVFdmVudExpc3RlbmVyQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNU
ZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02NDU5LDEyICs2NDU5LDEyIEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVyLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9yZW1vdmVFdmVudExpc3RlbmVy
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVyQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJyZW1vdmVFdmVudExpc3RlbmVyIik7CisgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X3JlbW92ZUV2ZW50TGlzdGVuZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgInJlbW92ZUV2ZW50TGlzdGVuZXIiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZVZvaWRCb2R5
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1l
KiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFt
ZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uX3dpdGhFeGVjU3RhdGVWb2lkQm9keShKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0
eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhp
cykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02NDc2LDEy
ICs2NDc2LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlVm9p
ZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25fd2l0aEV4ZWNTdGF0ZVZvaWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVWb2lk
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ3aXRoRXhlY1N0YXRlVm9p
ZCIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl93aXRoRXhlY1N0YXRlVm9pZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAid2l0aEV4ZWNTdGF0ZVZvaWQiKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNT
dGF0ZU9iakJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlND
OjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aEV4ZWNTdGF0ZU9iakJvZHkoSlND
OjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVy
IGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtNjQ5MSwxMiArNjQ5MSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29k
ZSh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0
ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC53aXRoRXhlY1N0YXRlT2JqKCpqc0Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPihsZXhpY2FsR2xvYmFsT2JqZWN0KSkpKSk7CiB9CiAKLUpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVP
YmosIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uX3dpdGhFeGVjU3RhdGVPYmosIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVPYmpC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIndpdGhFeGVjU3RhdGVPYmoi
KTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25fd2l0aEV4ZWNTdGF0ZU9iakJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAid2l0aEV4ZWNTdGF0ZU9iaiIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRl
Vm9pZEV4Y2VwdGlvbkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aEV4ZWNTdGF0ZVZvaWRF
eGNlcHRpb25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
Qzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+
OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTY1MDgsMTIgKzY1MDgsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVWb2lkRXhjZXB0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoRXhlY1N0YXRlVm9pZEV4
Y2VwdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxs
PGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZVZvaWRFeGNlcHRpb25Cb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIndpdGhFeGVjU3RhdGVWb2lkRXhj
ZXB0aW9uIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uX3dpdGhFeGVjU3RhdGVWb2lkRXhjZXB0aW9uQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ3aXRoRXhlY1N0YXRlVm9pZEV4Y2VwdGlv
biIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlT2JqRXhjZXB0aW9uQm9keShKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0
eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhp
cykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbl93aXRoRXhlY1N0YXRlT2JqRXhjZXB0aW9uQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFt
ZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsK
ICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02NTIzLDEyICs2NTIz
LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJm
YWNlPFRlc3RPYmo+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9i
amVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLndpdGhFeGVjU3RhdGVPYmpFeGNlcHRpb24oKmpzQ2Fz
dDxKU0RPTUdsb2JhbE9iamVjdCo+KGxleGljYWxHbG9iYWxPYmplY3QpKSkpKTsKIH0KIAotSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNT
dGF0ZU9iakV4Y2VwdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25fd2l0aEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbiwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uV2l0aEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAid2l0aEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbiIpOworICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93
aXRoRXhlY1N0YXRlT2JqRXhjZXB0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJ3aXRoRXhlY1N0YXRlT2JqRXhjZXB0aW9uIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNU
ZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtNjU0MywxMiArNjU0MywxMiBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3dpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNh
bGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAid2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRCb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQm9k
eShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJh
bWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNT
dGF0ZUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNs
YXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtNjU2MywxMiArNjU2MywxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGUsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3dpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGUiKTsKKyAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25fd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kRXhlY1N0YXRlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhl
Y1N0YXRlT2JqRXhjZXB0aW9uQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbkJvZHkoSlNDOjpKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlw
ZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMp
CiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjU4MSwxMiAr
NjU4MSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETElu
dGVyZmFjZTxUZXN0T2JqPj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9i
YWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbigqanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4obGV4aWNh
bEdsb2JhbE9iamVjdCksICpjYWxsRnJhbWUsICpjb250ZXh0KSkpKTsKIH0KIAotSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVPYmpFeGNlcHRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3dpdGhTY3JpcHRFeGVjdXRpb25D
b250ZXh0QW5kRXhlY1N0YXRlT2JqRXhjZXB0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbkJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRF
eGVjU3RhdGVPYmpFeGNlcHRpb24iKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRFeGVjU3RhdGVPYmpFeGNlcHRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlT2JqRXhj
ZXB0aW9uIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRl
V2l0aFNwYWNlc0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02NTk5LDEyICs2NTk5LDEyIEBA
IHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPFRl
c3RPYmo+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgp
LCBpbXBsLndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlcygq
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4obGV4aWNhbEdsb2JhbE9iamVjdCksICpjYWxsRnJh
bWUsICpjb250ZXh0KSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVX
aXRoU3BhY2VzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbl93aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFj
ZXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0
YXRlV2l0aFNwYWNlc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAid2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzIik7CisgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uX3dpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0JvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAid2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhEb2N1bWVudEFyZ3Vt
ZW50Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNh
bGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xh
c3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl93aXRoRG9jdW1lbnRBcmd1bWVudEJvZHkoSlND
OjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVy
IGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtNjYyMSwxMiArNjYyMSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAot
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aERv
Y3VtZW50QXJndW1lbnQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX3dpdGhEb2N1bWVudEFyZ3VtZW50LCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25X
aXRoRG9jdW1lbnRBcmd1bWVudEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAid2l0aERvY3VtZW50QXJndW1lbnQiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aERvY3VtZW50QXJndW1l
bnRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIndpdGhEb2N1bWVudEFy
Z3VtZW50Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbldpdGhDYWxsZXJEb2N1bWVudEFyZ3VtZW50Qm9keShKU0M6OkpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZy
YW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2Fz
dGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbl93aXRoQ2FsbGVyRG9jdW1lbnRBcmd1bWVudEJvZHkoSlNDOjpKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
dHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRo
aXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjY0MSwx
MiArNjY0MSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aENhbGxlckRvY3Vt
ZW50QXJndW1lbnQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uX3dpdGhDYWxsZXJEb2N1bWVudEFyZ3VtZW50LCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25XaXRoQ2FsbGVyRG9jdW1lbnRBcmd1bWVudEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAid2l0aENhbGxlckRvY3VtZW50QXJndW1lbnQiKTsKKyAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0
aENhbGxlckRvY3VtZW50QXJndW1lbnRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgIndpdGhDYWxsZXJEb2N1bWVudEFyZ3VtZW50Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhDYWxsZXJX
aW5kb3dBcmd1bWVudEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fd2l0aENhbGxlcldpbmRvd0Fy
Z3VtZW50Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6
OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC02NjU4LDEyICs2NjU4LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25XaXRoQ2FsbGVyV2luZG93QXJndW1lbnQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3dpdGhDYWxsZXJXaW5kb3dBcmd1bWVu
dCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aENhbGxlcldpbmRvd0FyZ3VtZW50Qm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ3aXRoQ2FsbGVyV2luZG93QXJndW1lbnQiKTsK
KyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25fd2l0aENhbGxlcldpbmRvd0FyZ3VtZW50Qm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJ3aXRoQ2FsbGVyV2luZG93QXJndW1lbnQiKTsKIH0KIAotc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsQXJnQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRp
b248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRo
T3B0aW9uYWxBcmdCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RP
Ymo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTY2NzgsMTIgKzY2NzgsMTIgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsQXJn
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBcmdCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbEFyZyIpOworICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbl9tZXRob2RXaXRoT3B0aW9uYWxBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbEFyZyIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxBcmdBbmREZWZhdWx0VmFsdWVCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJh
dGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdp
dGhPcHRpb25hbEFyZ0FuZERlZmF1bHRWYWx1ZUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURM
T3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjY5OCwxMiArNjY5OCwxMiBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXJnQW5kRGVm
YXVsdFZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxBcmdBbmREZWZhdWx0VmFsdWUsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewot
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFyZ0FuZERlZmF1bHRWYWx1ZUJvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsQXJnQW5kRGVm
YXVsdFZhbHVlIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbEFyZ0FuZERlZmF1bHRW
YWx1ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9w
dGlvbmFsQXJnQW5kRGVmYXVsdFZhbHVlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25PcHRpb25h
bEFyZ0FuZE9wdGlvbmFsQXJnQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoTm9u
T3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0
byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjcyMywxMiArNjcyMywxMiBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0
aW9uYWxBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uX21ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
LSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZ0JvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJn
QW5kT3B0aW9uYWxBcmciKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNh
bGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5k
T3B0aW9uYWxBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhv
ZFdpdGhOb25PcHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhO
b25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJnc0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUg
SURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25f
bWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzQm9keShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1l
LCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVk
VGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02NzUx
LDEyICs2NzUxLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9u
T3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3MsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0Fu
ZFR3b09wdGlvbmFsQXJncywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RP
Ymo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFs
QXJnQW5kVHdvT3B0aW9uYWxBcmdzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJtZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3MiKTsKKyAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25fbWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdB
bmRUd29PcHRpb25hbEFyZ3MiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nQm9k
eShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJh
bWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdCb2R5KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxs
RnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBj
YXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTY3NzEsMTIgKzY3NzEsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbFN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbFN0cmluZyIpOworICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRo
b2RXaXRoT3B0aW9uYWxTdHJpbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgIm1ldGhvZFdpdGhPcHRpb25hbFN0cmluZyIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxVU1ZTdHJpbmdCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RP
Ymo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbFVT
VlN0cmluZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlND
OjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtNjc5MSwxMiArNjc5MSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxV
U1ZTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2Fs
bDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVTVlN0cmluZ0Jv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFs
VVNWU3RyaW5nIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbFVTVlN0cmluZ0JvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsVVNW
U3RyaW5nIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdCb2R5KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxs
RnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBj
YXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdCb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0
ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTY4
MTEsMTIgKzY4MTEsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbEF0b21TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmcsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewot
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmciKTsKKyAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZyIpOwogfQog
Ci1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdBbmREZWZhdWx0VmFsdWVCb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0
ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0FuZERlZmF1bHRWYWx1ZUJvZHko
SlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1l
dGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtNjgzMSwxMiArNjgzMSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aE9wdGlvbmFsU3RyaW5nQW5kRGVmYXVsdFZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxT
dHJpbmdBbmREZWZhdWx0VmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25h
bFN0cmluZ0FuZERlZmF1bHRWYWx1ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nQW5kRGVmYXVsdFZhbHVlIik7CisgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uX21ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0FuZERlZmF1bHRWYWx1ZUJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nQW5kRGVm
YXVsdFZhbHVlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdBbmREZWZh
dWx0VmFsdWVCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
Qzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+
OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbEF0b21T
dHJpbmdBbmREZWZhdWx0VmFsdWVCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTY4NTEsMTIgKzY4NTEsMTIgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdBbmREZWZh
dWx0VmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdBbmREZWZhdWx0VmFsdWUsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdBbmREZWZhdWx0VmFs
dWVCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRp
b25hbEF0b21TdHJpbmdBbmREZWZhdWx0VmFsdWUiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9w
dGlvbmFsQXRvbVN0cmluZ0FuZERlZmF1bHRWYWx1ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0FuZERlZmF1bHRWYWx1
ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc051bGxCb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0
ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzTnVsbEJvZHkoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3Rl
ZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjg3
MSwxMiArNjg3MSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsU3RyaW5nSXNOdWxsLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc051bGwsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzTnVsbEJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNOdWxs
Iik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzTnVsbEJvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNO
dWxsIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzVW5kZWZpbmVkQm9keShK
U0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSog
Y2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0
ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc1VuZGVmaW5lZEJv
ZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFy
YW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtNjg5MSwxMiArNjg5MSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNVbmRlZmluZWQsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbFN0
cmluZ0lzVW5kZWZpbmVkLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJp
bmdJc1VuZGVmaW5lZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0
aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNVbmRlZmluZWQiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0
aE9wdGlvbmFsU3RyaW5nSXNVbmRlZmluZWRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzVW5kZWZpbmVkIik7CiB9CiAKLXN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdJc051bGxCb2R5KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVu
YW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQor
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uX21ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdJc051bGxCb2R5KEpTQzo6SlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5
cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlz
KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTY5MTEsMTIg
KzY5MTEsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25h
bEF0b21TdHJpbmdJc051bGwsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdJc051bGwsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdJc051bGxCb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbEF0b21T
dHJpbmdJc051bGwiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0lz
TnVsbEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9w
dGlvbmFsQXRvbVN0cmluZ0lzTnVsbCIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJp
bmdJc0VtcHR5U3RyaW5nQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNU
ZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9u
YWxTdHJpbmdJc0VtcHR5U3RyaW5nQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRp
b248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02OTMxLDEyICs2OTMxLDEyIEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc0VtcHR5U3Ry
aW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbl9tZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc0VtcHR5U3RyaW5nLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc0VtcHR5U3RyaW5nQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc0VtcHR5
U3RyaW5nIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzRW1wdHlTdHJp
bmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRp
b25hbFN0cmluZ0lzRW1wdHlTdHJpbmciKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVVNW
U3RyaW5nSXNFbXB0eVN0cmluZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9u
PEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9w
dGlvbmFsVVNWU3RyaW5nSXNFbXB0eVN0cmluZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURM
T3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjk1MSwxMiArNjk1MSwxMiBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5n
SXNFbXB0eVN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5nSXNFbXB0eVN0cmluZywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5nSXNFbXB0eVN0cmlu
Z0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlv
bmFsVVNWU3RyaW5nSXNFbXB0eVN0cmluZyIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9u
YWxVU1ZTdHJpbmdJc0VtcHR5U3RyaW5nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxVU1ZTdHJpbmdJc0VtcHR5U3RyaW5nIik7CiB9CiAK
LXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdJc0VtcHR5U3RyaW5nQm9keShKU0M6OkpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZy
YW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2Fz
dGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nSXNFbXB0eVN0cmluZ0Jv
ZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFy
YW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtNjk3MSwxMiArNjk3MSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0lzRW1wdHlTdHJpbmcsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRp
b25hbEF0b21TdHJpbmdJc0VtcHR5U3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
T3B0aW9uYWxBdG9tU3RyaW5nSXNFbXB0eVN0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0lzRW1wdHlTdHJpbmci
KTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0lzRW1wdHlTdHJpbmdC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25h
bEF0b21TdHJpbmdJc0VtcHR5U3RyaW5nIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbERv
dWJsZUlzTmFOQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2Jq
Pjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxEb3Vi
bGVJc05hTkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlND
OjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtNjk5MSwxMiArNjk5MSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRG91YmxlSXNOYU4sIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25h
bERvdWJsZUlzTmFOLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxEb3VibGVJ
c05hTkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9w
dGlvbmFsRG91YmxlSXNOYU4iKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsRG91Ymxl
SXNOYU5Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhP
cHRpb25hbERvdWJsZUlzTmFOIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEZsb2F0SXNO
YU5Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFz
c1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbEZsb2F0SXNOYU5C
b2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZy
YW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1Bh
cmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTcwMTEsMTIgKzcwMTEsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbEZsb2F0SXNOYU4sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbEZsb2F0SXNO
YU4sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEZsb2F0SXNOYU5Cb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbEZsb2F0
SXNOYU4iKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsRmxvYXRJc05hTkJvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsRmxvYXRJ
c05hTiIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxMb25nTG9uZ0JvZHkoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3Rl
ZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsTG9uZ0xvbmdCb2R5KEpTQzo6SlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5
cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlz
KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTcwMzEsMTIg
KzcwMzEsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25h
bExvbmdMb25nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxMb25nTG9uZywgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsTG9uZ0xvbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbExvbmdMb25nIik7CisgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhv
ZFdpdGhPcHRpb25hbExvbmdMb25nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJtZXRob2RXaXRoT3B0aW9uYWxMb25nTG9uZyIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxMb25nTG9uZ0lzWmVyb0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9u
PEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9w
dGlvbmFsTG9uZ0xvbmdJc1plcm9Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTcwNTEsMTIgKzcwNTEsMTIgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbExvbmdMb25nSXNaZXJvLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9t
ZXRob2RXaXRoT3B0aW9uYWxMb25nTG9uZ0lzWmVybywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsTG9uZ0xvbmdJc1plcm9Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbExvbmdMb25nSXNaZXJvIik7CisgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X21ldGhvZFdpdGhPcHRpb25hbExvbmdMb25nSXNaZXJvQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxMb25nTG9uZ0lzWmVybyIpOwogfQog
Ci1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVbnNpZ25lZExvbmdMb25nQm9keShKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0
eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhp
cykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxVbnNpZ25lZExvbmdMb25nQm9keShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1l
LCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVk
VGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC03MDcx
LDEyICs3MDcxLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxVbnNpZ25lZExvbmdMb25nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxVbnNpZ25lZExvbmdMb25n
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVbnNpZ25lZExvbmdMb25nQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxV
bnNpZ25lZExvbmdMb25nIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+Ojpj
YWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbFVuc2lnbmVk
TG9uZ0xvbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdp
dGhPcHRpb25hbFVuc2lnbmVkTG9uZ0xvbmciKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFs
VW5zaWduZWRMb25nTG9uZ0lzWmVyb0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0
aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0
aE9wdGlvbmFsVW5zaWduZWRMb25nTG9uZ0lzWmVyb0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUg
SURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAg
ICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNzA5MSwxMiArNzA5MSwx
MiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVW5zaWdu
ZWRMb25nTG9uZ0lzWmVybywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsVW5zaWduZWRMb25nTG9uZ0lzWmVy
bywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVW5zaWduZWRMb25nTG9uZ0lz
WmVyb0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9w
dGlvbmFsVW5zaWduZWRMb25nTG9uZ0lzWmVybyIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0
aW9uYWxVbnNpZ25lZExvbmdMb25nSXNaZXJvQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxVbnNpZ25lZExvbmdMb25nSXNaZXJvIik7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFNlcXVlbmNlQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFt
ZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bl9tZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURM
T3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNzExMSwxMiArNzExMSwxMiBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU2VxdWVuY2Us
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X21ldGhvZFdpdGhPcHRpb25hbFNlcXVlbmNlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
T3B0aW9uYWxTZXF1ZW5jZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
bWV0aG9kV2l0aE9wdGlvbmFsU2VxdWVuY2UiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlv
bmFsU2VxdWVuY2VCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhv
ZFdpdGhPcHRpb25hbFNlcXVlbmNlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFNlcXVl
bmNlSXNFbXB0eUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsU2Vx
dWVuY2VJc0VtcHR5Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0
T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC03MTMxLDEyICs3MTMxLDEyIEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZUlzRW1wdHksIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdp
dGhPcHRpb25hbFNlcXVlbmNlSXNFbXB0eSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsU2VxdWVuY2VJc0VtcHR5Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJtZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZUlzRW1wdHkiKTsKKyAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0
aG9kV2l0aE9wdGlvbmFsU2VxdWVuY2VJc0VtcHR5Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZUlzRW1wdHkiKTsKIH0KIAot
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE9wdGlvbmFsQm9vbGVhbkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURM
T3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0
aG9kV2l0aE9wdGlvbmFsQm9vbGVhbkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0
aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNzE1MSwxMiArNzE1MSwxMiBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQm9vbGVhbiwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9k
V2l0aE9wdGlvbmFsQm9vbGVhbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFs
Qm9vbGVhbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0
aE9wdGlvbmFsQm9vbGVhbiIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxCb29sZWFu
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9u
YWxCb29sZWFuIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEJvb2xlYW5Jc0ZhbHNlQm9k
eShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJh
bWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxCb29sZWFuSXNGYWxzZUJv
ZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFy
YW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtNzE3MSwxMiArNzE3MSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsQm9vbGVhbklzRmFsc2UsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbEJvb2xl
YW5Jc0ZhbHNlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNh
bGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxCb29sZWFuSXNG
YWxzZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9w
dGlvbmFsQm9vbGVhbklzRmFsc2UiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsQm9v
bGVhbklzRmFsc2VCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhv
ZFdpdGhPcHRpb25hbEJvb2xlYW5Jc0ZhbHNlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25h
bEFueUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNs
YXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsQW55Qm9keShK
U0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSog
Y2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0
ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC03MTkxLDEyICs3MTkxLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxBbnksIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbEFueSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE9wdGlvbmFsQW55Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxBbnkiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9w
dGlvbmFsQW55Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RX
aXRoT3B0aW9uYWxBbnkiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsT2JqZWN0Qm9keShK
U0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSog
Y2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0
ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxPYmplY3RCb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0
ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTcy
MTEsMTIgKzcyMTEsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbE9iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsT2JqZWN0LCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxPYmplY3RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbE9iamVjdCIpOworICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RX
aXRoT3B0aW9uYWxPYmplY3RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
Im1ldGhvZFdpdGhPcHRpb25hbE9iamVjdCIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxX
cmFwcGVyQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6
OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxXcmFwcGVy
Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxG
cmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQ
YXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC03MjMxLDEyICs3MjMxLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxXcmFwcGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxXcmFwcGVyLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxXcmFwcGVyQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxXcmFwcGVyIik7Cisg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbFdyYXBwZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbFdyYXBwZXIiKTsKIH0KIAotc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVyQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFt
ZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bl9tZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBwZXJCb2R5KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVu
YW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQog
ewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTcyNTEsMTIgKzcy
NTEsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbE51
bGxhYmxlV3JhcHBlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVyLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
LSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBwZXJCb2R5PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlV3Jh
cHBlciIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBwZXJCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbE51
bGxhYmxlV3JhcHBlciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBw
ZXJJc051bGxCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
Qzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+
OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbE51bGxh
YmxlV3JhcHBlcklzTnVsbEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNzI3MSwxMiArNzI3MSwxMiBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVySXNOdWxs
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bl9tZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBwZXJJc051bGwsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlV3JhcHBlcklzTnVsbEJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVXcmFw
cGVySXNOdWxsIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlV3JhcHBl
cklzTnVsbEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0
aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVySXNOdWxsIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbFhQYXRoTlNSZXNvbHZlckJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9u
PEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9w
dGlvbmFsWFBhdGhOU1Jlc29sdmVyQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRp
b248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC03MjkxLDEyICs3MjkxLDEyIEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5TUmVzb2x2ZXIs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X21ldGhvZFdpdGhPcHRpb25hbFhQYXRoTlNSZXNvbHZlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aE9wdGlvbmFsWFBhdGhOU1Jlc29sdmVyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5TUmVzb2x2ZXIiKTsKKyAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsWFBhdGhOU1Jlc29sdmVyQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5TUmVzb2x2ZXIi
KTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsUmVjb3JkQm9keShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBl
bmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykK
K3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbl9tZXRob2RXaXRoT3B0aW9uYWxSZWNvcmRCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElE
TE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAg
IGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTczMTEsMTIgKzczMTEsMTIg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFJlY29yZCwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25f
bWV0aG9kV2l0aE9wdGlvbmFsUmVjb3JkLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxSZWNvcmRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhv
ZFdpdGhPcHRpb25hbFJlY29yZCIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2Jq
Pjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxSZWNv
cmRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRp
b25hbFJlY29yZCIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxQcm9taXNlQm9keShKU0M6
OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2Fs
bEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIg
Y2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxQcm9taXNlQm9keShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1l
LCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVk
VGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC03MzMx
LDEyICs3MzMxLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxQcm9taXNlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxQcm9taXNlLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxQcm9taXNlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxQcm9taXNlIik7CisgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhv
ZFdpdGhPcHRpb25hbFByb21pc2VCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgIm1ldGhvZFdpdGhPcHRpb25hbFByb21pc2UiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxi
YWNrSW50ZXJmYWNlQXJnQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNU
ZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoQ2FsbGJh
Y2tJbnRlcmZhY2VBcmdCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTczNTMsMTIgKzczNTMsMTIgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0ludGVyZmFjZUFyZywgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0
aENhbGxiYWNrSW50ZXJmYWNlQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJh
Y2tJbnRlcmZhY2VBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1l
dGhvZFdpdGhDYWxsYmFja0ludGVyZmFjZUFyZyIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoQ2Fs
bGJhY2tJbnRlcmZhY2VBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
Im1ldGhvZFdpdGhDYWxsYmFja0ludGVyZmFjZUFyZyIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTnVs
bGFibGVDYWxsYmFja0ludGVyZmFjZUFyZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9k
V2l0aE51bGxhYmxlQ2FsbGJhY2tJbnRlcmZhY2VBcmdCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1l
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewog
ICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTczNzUsMTIgKzczNzUs
MTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOdWxsYWJsZUNhbGxi
YWNrSW50ZXJmYWNlQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoTnVsbGFibGVDYWxsYmFja0ludGVyZmFjZUFyZywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE51bGxhYmxlQ2FsbGJhY2tJbnRlcmZhY2VBcmdC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhOdWxsYWJs
ZUNhbGxiYWNrSW50ZXJmYWNlQXJnIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RP
Ymo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhOdWxsYWJsZUNh
bGxiYWNrSW50ZXJmYWNlQXJnQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJtZXRob2RXaXRoTnVsbGFibGVDYWxsYmFja0ludGVyZmFjZUFyZyIpOwogfQogCi1zdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoTm9uQ2FsbGJhY2tJbnRlcmZhY2VBcmdBbmRDYWxsYmFja0ludGVyZmFjZUFyZ0JvZHko
SlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1l
dGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE5vbkNhbGxiYWNrSW50ZXJmYWNlQXJnQW5k
Q2FsbGJhY2tJbnRlcmZhY2VBcmdCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTc0MDAsMTIgKzc0MDAsMTIgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25DYWxsYmFja0ludGVyZmFjZUFyZ0Fu
ZENhbGxiYWNrSW50ZXJmYWNlQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoTm9uQ2FsbGJhY2tJbnRlcmZhY2VBcmdB
bmRDYWxsYmFja0ludGVyZmFjZUFyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbkNh
bGxiYWNrSW50ZXJmYWNlQXJnQW5kQ2FsbGJhY2tJbnRlcmZhY2VBcmdCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhOb25DYWxsYmFja0ludGVyZmFjZUFy
Z0FuZENhbGxiYWNrSW50ZXJmYWNlQXJnIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhOb25DYWxs
YmFja0ludGVyZmFjZUFyZ0FuZENhbGxiYWNrSW50ZXJmYWNlQXJnQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoTm9uQ2FsbGJhY2tJbnRlcmZhY2VBcmdB
bmRDYWxsYmFja0ludGVyZmFjZUFyZyIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxDYWxs
YmFja0ludGVyZmFjZUFyZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlv
bmFsQ2FsbGJhY2tJbnRlcmZhY2VBcmdCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJh
dGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8m
IHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTc0MjAsMTIgKzc0MjAsMTIgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbENhbGxiYWNrSW50ZXJm
YWNlQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxDYWxsYmFja0ludGVyZmFjZUFyZywgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0g
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQ2FsbGJhY2tJbnRlcmZhY2VBcmdCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbENhbGxiYWNr
SW50ZXJmYWNlQXJnIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxs
PGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbENhbGxiYWNrSW50
ZXJmYWNlQXJnQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RX
aXRoT3B0aW9uYWxDYWxsYmFja0ludGVyZmFjZUFyZyIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxOdWxsYWJsZUNhbGxiYWNrSW50ZXJmYWNlQXJnQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFt
ZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bl9tZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZUNhbGxiYWNrSW50ZXJmYWNlQXJnQm9keShKU0M6
OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2Fs
bEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIg
Y2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC03NDQwLDEyICs3NDQwLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1K
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoT3B0aW9uYWxOdWxsYWJsZUNhbGxiYWNrSW50ZXJmYWNlQXJnLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9u
YWxOdWxsYWJsZUNhbGxiYWNrSW50ZXJmYWNlQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoT3B0aW9uYWxOdWxsYWJsZUNhbGxiYWNrSW50ZXJmYWNlQXJnQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZUNhbGxiYWNr
SW50ZXJmYWNlQXJnIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxs
PGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlQ2Fs
bGJhY2tJbnRlcmZhY2VBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
Im1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlQ2FsbGJhY2tJbnRlcmZhY2VBcmciKTsKIH0KIAot
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aENhbGxiYWNrRnVuY3Rpb25BcmdCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1l
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X21ldGhvZFdpdGhDYWxsYmFja0Z1bmN0aW9uQXJnQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAg
ICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC03NDYyLDEyICs3NDYyLDEy
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tGdW5jdGlv
bkFyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25fbWV0aG9kV2l0aENhbGxiYWNrRnVuY3Rpb25BcmcsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhDYWxsYmFja0Z1bmN0aW9uQXJnQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJtZXRob2RXaXRoQ2FsbGJhY2tGdW5jdGlvbkFyZyIpOworICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9t
ZXRob2RXaXRoQ2FsbGJhY2tGdW5jdGlvbkFyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAibWV0aG9kV2l0aENhbGxiYWNrRnVuY3Rpb25BcmciKTsKIH0KIAotc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aE51bGxhYmxlQ2FsbGJhY2tGdW5jdGlvbkFyZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5h
bWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25fbWV0aG9kV2l0aE51bGxhYmxlQ2FsbGJhY2tGdW5jdGlvbkFyZ0JvZHkoSlNDOjpKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
dHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRo
aXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNzQ4NCwx
MiArNzQ4NCwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE51bGxh
YmxlQ2FsbGJhY2tGdW5jdGlvbkFyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE51bGxhYmxlQ2FsbGJhY2tGdW5jdGlv
bkFyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE51bGxhYmxlQ2FsbGJhY2tGdW5jdGlv
bkFyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE51
bGxhYmxlQ2FsbGJhY2tGdW5jdGlvbkFyZyIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoTnVsbGFi
bGVDYWxsYmFja0Z1bmN0aW9uQXJnQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJtZXRob2RXaXRoTnVsbGFibGVDYWxsYmFja0Z1bmN0aW9uQXJnIik7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrRnVuY3Rpb25BcmdCb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0
ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrRnVuY3Rpb25B
cmdCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFz
c1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTc1MDksMTIgKzc1MDksMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrRnVuY3Rpb25BcmcsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhv
ZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrRnVuY3Rpb25BcmcsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrRnVuY3Rpb25BcmdCb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhOb25DYWxsYmFja0Fy
Z0FuZENhbGxiYWNrRnVuY3Rpb25BcmciKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aE5vbkNhbGxi
YWNrQXJnQW5kQ2FsbGJhY2tGdW5jdGlvbkFyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAibWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tGdW5jdGlvbkFy
ZyIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxDYWxsYmFja0Z1bmN0aW9uQXJnQm9keShK
U0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSog
Y2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0
ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxDYWxsYmFja0Z1bmN0aW9uQXJn
Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxG
cmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQ
YXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC03NTI5LDEyICs3NTI5LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxDYWxsYmFja0Z1bmN0aW9uQXJnLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9u
YWxDYWxsYmFja0Z1bmN0aW9uQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxDYWxsYmFja0Z1bmN0aW9uQXJnQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJtZXRob2RXaXRoT3B0aW9uYWxDYWxsYmFja0Z1bmN0aW9uQXJnIik7CisgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X21ldGhvZFdpdGhPcHRpb25hbENhbGxiYWNrRnVuY3Rpb25BcmdCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbENhbGxiYWNrRnVuY3Rpb25B
cmciKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVDYWxsYmFja0Z1bmN0aW9u
QXJnQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNh
bGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xh
c3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZUNh
bGxiYWNrRnVuY3Rpb25BcmdCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTc1NDksMTIgKzc1NDksMTIgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlQ2FsbGJhY2tGdW5j
dGlvbkFyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25fbWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVDYWxsYmFja0Z1bmN0aW9uQXJnLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZUNhbGxiYWNrRnVuY3Rp
b25BcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhP
cHRpb25hbE51bGxhYmxlQ2FsbGJhY2tGdW5jdGlvbkFyZyIpOworICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RX
aXRoT3B0aW9uYWxOdWxsYWJsZUNhbGxiYWNrRnVuY3Rpb25BcmdCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlQ2FsbGJhY2tG
dW5jdGlvbkFyZyIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlv
bmFsQXJnQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6
OkNhbGxGcmFtZSogY2FsbEZyYW1lKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25fc3RhdGljTWV0aG9kV2l0aENhbGxiYWNrQW5k
T3B0aW9uYWxBcmdCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtNzU2OCwxMiArNzU2OCwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVj
dG9yRnVuY3Rpb25TdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZywgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbl9zdGF0
aWNNZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsU3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yRnVu
Y3Rpb25TdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZ0JvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAic3RhdGljTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0
aW9uYWxBcmciKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGxTdGF0
aWM8anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbl9zdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tB
bmRPcHRpb25hbEFyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAic3Rh
dGljTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmciKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNN
ZXRob2RXaXRoQ2FsbGJhY2tBcmdCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbl9zdGF0aWNNZXRob2RX
aXRoQ2FsbGJhY2tBcmdCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtNzU4OSwxMyArNzU4OSwxMyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0
cnVjdG9yRnVuY3Rpb25TdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmcsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25fc3RhdGljTWV0aG9k
V2l0aENhbGxiYWNrQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OmNhbGxTdGF0aWM8anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblN0YXRpY01ldGhvZFdp
dGhDYWxsYmFja0FyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAic3Rh
dGljTWV0aG9kV2l0aENhbGxiYWNrQXJnIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpjYWxsU3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25fc3RhdGljTWV0
aG9kV2l0aENhbGxiYWNrQXJnQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmciKTsKIH0KIAogI2lmIEVOQUJMRShDb25kaXRp
b24xKQotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QxQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jb25k
aXRpb25hbE1ldGhvZDFCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTc2MDUsMTUgKzc2MDUsMTUgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCBpbXBsLmNvbmRpdGlvbmFsTWV0aG9kMSgpKSkpOwogfQogCi1KU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDEs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X2NvbmRpdGlvbmFsTWV0aG9kMSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2Qx
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjb25kaXRpb25hbE1ldGhv
ZDEiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25fY29uZGl0aW9uYWxNZXRob2QxQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJjb25kaXRpb25hbE1ldGhvZDEiKTsKIH0KIAogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIpCi1zdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRp
b25hbE1ldGhvZDJCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RP
Ymo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2NvbmRpdGlvbmFsTWV0aG9kMkJv
ZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFy
YW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtNzYyNSwxNSArNzYyNSwxNSBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
Q29uZGl0aW9uYWxNZXRob2QyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9jb25kaXRpb25hbE1ldGhvZDIsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNvbmRpdGlvbmFsTWV0aG9kMkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAiY29uZGl0aW9uYWxNZXRob2QyIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RP
Ymo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2NvbmRpdGlvbmFsTWV0aG9kMkJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY29uZGl0aW9uYWxNZXRob2Qy
Iik7CiB9CiAKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25k
aXRpb24yKQotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9j
b25kaXRpb25hbE1ldGhvZDNCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTc2NDUsMTQgKzc2NDUsMTQgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMywgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY29uZGl0aW9uYWxNZXRob2Qz
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDNCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgImNvbmRpdGlvbmFsTWV0aG9kMyIpOworICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9j
b25kaXRpb25hbE1ldGhvZDNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
ImNvbmRpdGlvbmFsTWV0aG9kMyIpOwogfQogCiAjZW5kaWYKIAotc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhv
ZDFCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFz
c1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2QxQm9keShKU0M6OkpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZy
YW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2Fz
dGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC03
NjcwLDcgKzc2NzAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRlZE1ldGhvZDJCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2Qy
Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxG
cmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQ
YXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC03Njg4LDcgKzc2ODgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDNCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9w
ZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJs
b2FkZWRNZXRob2QzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0
T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC03NzAzLDcgKzc3MDMsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDRCb2R5KEpTQzo6SlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5
cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlz
KQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uX292ZXJsb2FkZWRNZXRob2Q0Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRv
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC03NzE4LDcgKzc3MTgsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDVCb2R5KEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBj
YWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRl
ciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2Q1Qm9keShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBl
bmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykK
IHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC03NzMzLDcgKzc3
MzMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1l
dGhvZDZCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpD
bGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2Q2Qm9keShKU0M6
OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2Fs
bEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIg
Y2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC03NzQ4LDcgKzc3NDgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T3ZlcmxvYWRlZE1ldGhvZDdCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRo
b2Q3Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNh
bGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xh
c3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC03NzYzLDcgKzc3NjMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDhCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElE
TE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292
ZXJsb2FkZWRNZXRob2Q4Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNU
ZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC03Nzc4LDcgKzc3NzgsNyBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDlCb2R5KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUs
IHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRU
aGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2Q5Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC03NzkzLDcgKzc3OTMsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEwQm9k
eShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJh
bWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZGVkTWV0aG9kMTBCb2R5KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUs
IHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRU
aGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTc4MDgs
NyArNzgwOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9h
ZGVkTWV0aG9kMTFCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RP
Ymo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2QxMUJv
ZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFy
YW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtNzgyMyw3ICs3ODIzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxMkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3Zlcmxv
YWRlZE1ldGhvZDEyQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0
T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC03ODM4LDcgKzc4MzgsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEzQm9keShKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0
eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhp
cykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbl9vdmVybG9hZGVkTWV0aG9kMTNCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9w
ZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1
dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTc4NTIsNyArNzg1Miw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kT3Zlcmxv
YWREaXNwYXRjaGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
Qzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+
OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2RPdmVybG9h
ZERpc3BhdGNoZXIoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlND
OjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtNzg2MCw1MSArNzg2MCw1MSBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgVU5VU0VEX1BBUkFNKGNhbGxGcmFtZSk7CiAgICAg
c2l6ZV90IGFyZ3NDb3VudCA9IHN0ZDo6bWluPHNpemVfdD4oMiwgY2FsbEZyYW1lLT5hcmd1bWVu
dENvdW50KCkpOwogICAgIGlmIChhcmdzQ291bnQgPT0gMCkgewotICAgICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRl
ZE1ldGhvZDEzQm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMp
KSk7CisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZDEzQm9keShsZXhpY2FsR2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7CiAgICAgfQogICAgIGlmIChhcmdzQ291bnQgPT0g
MSkgewogICAgICAgICBKU1ZhbHVlIGRpc3Rpbmd1aXNoaW5nQXJnID0gY2FsbEZyYW1lLT51bmNo
ZWNrZWRBcmd1bWVudCgwKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzVW5kZWZp
bmVkT3JOdWxsKCkpCi0gICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDJCb2R5KGxleGljYWxH
bG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKKyAgICAgICAgICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3Zl
cmxvYWRlZE1ldGhvZDJCb2R5KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgY2FzdGVk
VGhpcykpKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNP
YmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3RPYmo+KHZtKSkKLSAgICAg
ICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMkJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lLCBjYXN0ZWRUaGlzKSkpOworICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZGVkTWV0aG9kMkJvZHko
bGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOwogICAgICAgICBp
ZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGlu
Z0FyZyktPmluaGVyaXRzPEpTVGVzdENhbGxiYWNrSW50ZXJmYWNlPih2bSkpCi0gICAgICAgICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3ZlcmxvYWRlZE1ldGhvZDVCb2R5KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwg
Y2FzdGVkVGhpcykpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAoanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZDVCb2R5KGxleGlj
YWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKICAgICAgICAgaWYgKGRp
c3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcp
LT5pbmhlcml0czxKU0RPTVN0cmluZ0xpc3Q+KHZtKSkKLSAgICAgICAgICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVk
TWV0aG9kNkJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkp
OworICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZGVkTWV0aG9kNkJvZHkobGV4aWNhbEdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOwogICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdB
cmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpT
VGVzdE9iaj4odm0pKQotICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
IChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q4Qm9keShsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7CisgICAgICAgICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292
ZXJsb2FkZWRNZXRob2Q4Qm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3Rl
ZFRoaXMpKSk7CiAgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFz
T2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNXaW5kb3dQcm94eT4odm0pKQot
ICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q5Qm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBj
YWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7CisgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2Q5
Qm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7CiAgICAg
ICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1
aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNCbG9iPih2bSkpCi0gICAgICAgICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRl
ZE1ldGhvZDEzQm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMp
KSk7CisgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2QxM0JvZHkobGV4aWNhbEdsb2JhbE9i
amVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOwogICAgICAgICBpZiAoaGFzSXRlcmF0b3JN
ZXRob2QobGV4aWNhbEdsb2JhbE9iamVjdCwgZGlzdGluZ3Vpc2hpbmdBcmcpKQotICAgICAgICAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk92ZXJsb2FkZWRNZXRob2Q3Qm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUs
IGNhc3RlZFRoaXMpKSk7CisgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2Q3Qm9keShsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7CiAgICAgICAgIGlmIChk
aXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpKQotICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRo
b2Q1Qm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7Cisg
ICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2Q1Qm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBj
YWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7CiAgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5p
c051bWJlcigpKQotICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q0Qm9keShsZXhpY2FsR2xv
YmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7Ci0gICAgICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVk
TWV0aG9kM0JvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkp
OworICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZGVkTWV0aG9kNEJvZHkobGV4aWNhbEdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOworICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2Qz
Qm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7CiAgICAg
fQogICAgIGlmIChhcmdzQ291bnQgPT0gMikgewogICAgICAgICBKU1ZhbHVlIGRpc3Rpbmd1aXNo
aW5nQXJnID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgxKTsKICAgICAgICAgaWYgKGRp
c3Rpbmd1aXNoaW5nQXJnLmlzVW5kZWZpbmVkKCkpCi0gICAgICAgICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1l
dGhvZDJCb2R5KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsK
KyAgICAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZDJCb2R5KGxleGljYWxHbG9iYWxPYmplY3Qs
IGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJn
LmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU0Js
b2I+KHZtKSkKLSAgICAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMTNCb2R5KGxleGljYWxHbG9i
YWxPYmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKKyAgICAgICAgICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3Zlcmxv
YWRlZE1ldGhvZDEzQm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRo
aXMpKSk7CiAgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc051bWJlcigpKQotICAgICAg
ICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk92ZXJsb2FkZWRNZXRob2QyQm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUsIGNhc3RlZFRoaXMpKSk7Ci0gICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAoanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMUJvZHkobGV4aWNh
bEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOworICAgICAgICAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9v
dmVybG9hZGVkTWV0aG9kMkJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0
ZWRUaGlzKSkpOworICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2QxQm9keShsZXhpY2FsR2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7CiAgICAgfQogICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwogfQogCi1KU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVk
TWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbl9vdmVybG9hZGVkTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0
aG9kT3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
Im92ZXJsb2FkZWRNZXRob2QiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZE92ZXJsb2Fk
RGlzcGF0Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJvdmVybG9hZGVk
TWV0aG9kIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIx
Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxG
cmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQ
YXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFy
YW1ldGVyMUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlND
OjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtNzkyMiw3ICs3OTIyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIyQm9k
eShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJh
bWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1l
dGVyMkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNs
YXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtNzk0MCw3ICs3OTQwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXJPdmVybG9h
ZERpc3BhdGNoZXIoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlND
OjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRp
b25hbFBhcmFtZXRlck92ZXJsb2FkRGlzcGF0Y2hlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC03OTUwLDI4ICs3OTUwLDI4IEBA
IHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBpZiAoYXJnc0Nv
dW50ID09IDEpIHsKICAgICAgICAgSlNWYWx1ZSBkaXN0aW5ndWlzaGluZ0FyZyA9IGNhbGxGcmFt
ZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7CiAgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5p
c1VuZGVmaW5lZE9yTnVsbCgpKQotICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0
aW9uYWxQYXJhbWV0ZXIyQm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3Rl
ZFRoaXMpKSk7CisgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJh
bWV0ZXIyQm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7
CiAgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRp
c3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0T2JqPih2bSkpCi0gICAgICAgICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlcjJCb2R5KGxleGljYWxHbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKLSAgICAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRo
b2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIxQm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUsIGNhc3RlZFRoaXMpKSk7CisgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2RXaXRoT3B0
aW9uYWxQYXJhbWV0ZXIyQm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3Rl
ZFRoaXMpKSk7CisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRl
cjFCb2R5KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKICAg
ICB9CiAgICAgaWYgKGFyZ3NDb3VudCA9PSAyKSB7CiAgICAgICAgIEpTVmFsdWUgZGlzdGluZ3Vp
c2hpbmdBcmcgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwogICAgICAgICBpZiAo
ZGlzdGluZ3Vpc2hpbmdBcmcuaXNVbmRlZmluZWRPck51bGwoKSkKLSAgICAgICAgICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVy
bG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyMkJvZHkobGV4aWNhbEdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOworICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZGVkTWV0
aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyMkJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lLCBjYXN0ZWRUaGlzKSkpOwogICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmpl
Y3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE9iaj4o
dm0pKQotICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIy
Qm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7Ci0gICAg
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyMUJvZHkobGV4aWNhbEds
b2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOworICAgICAgICAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVy
bG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyMkJvZHkobGV4aWNhbEdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOworICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2RX
aXRoT3B0aW9uYWxQYXJhbWV0ZXIxQm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUs
IGNhc3RlZFRoaXMpKSk7CiAgICAgfQogICAgIHJldHVybiBhcmdzQ291bnQgPCAxID8gdGhyb3dW
TUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKSA6IHRocm93Vk1UeXBlRXJyb3IobGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9u
YWxQYXJhbWV0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXJPdmVybG9h
ZERpc3BhdGNoZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAib3ZlcmxvYWRl
ZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlciIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZGVkTWV0
aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyT3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgIm92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0
ZXIiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlzaGluZ1VuaW9uMUJv
ZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFy
YW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlzaGlu
Z1VuaW9uMUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlND
OjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtNzk4Niw3ICs3OTg2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vpc2hpbmdVbmlvbjJC
b2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZy
YW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1Bh
cmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vpc2hp
bmdVbmlvbjJCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
Qzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+
OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTgwMDEsNyArODAwMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNoaW5nVW5pb25P
dmVybG9hZERpc3BhdGNoZXIoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZFdp
dGhEaXN0aW5ndWlzaGluZ1VuaW9uT3ZlcmxvYWREaXNwYXRjaGVyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVu
YW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQog
ewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTgwMTEsMjIgKzgw
MTEsMjIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIGlm
IChhcmdzQ291bnQgPT0gMSkgewogICAgICAgICBKU1ZhbHVlIGRpc3Rpbmd1aXNoaW5nQXJnID0g
Y2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNo
aW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0
czxKU1Rlc3RPYmo+KHZtKSkKLSAgICAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAoanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rp
bmd1aXNoaW5nVW5pb24xQm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3Rl
ZFRoaXMpKSk7CisgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vpc2hp
bmdVbmlvbjFCb2R5KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykp
KTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3Qo
ZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3ROb2RlPih2bSkpCi0gICAgICAgICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlzaGluZ1VuaW9uMUJvZHkobGV4aWNhbEds
b2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOworICAgICAgICAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVy
bG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNoaW5nVW5pb24xQm9keShsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7CiAgICAgICAgIGlmIChkaXN0aW5ndWlzaGlu
Z0FyZy5pc051bWJlcigpKQotICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGlu
Z3Vpc2hpbmdVbmlvbjJCb2R5KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgY2FzdGVk
VGhpcykpKTsKLSAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vpc2hpbmdVbmlv
bjJCb2R5KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKKyAg
ICAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlzaGluZ1VuaW9uMkJvZHko
bGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOworICAgICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X292ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vpc2hpbmdVbmlvbjJCb2R5KGxleGljYWxHbG9i
YWxPYmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKICAgICB9CiAgICAgcmV0dXJuIGFy
Z3NDb3VudCA8IDEgPyB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29w
ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpIDog
dGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKIH0KIAot
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlzaGluZ1VuaW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZGVkTWV0aG9kV2l0aERp
c3Rpbmd1aXNoaW5nVW5pb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRo
RGlzdGluZ3Vpc2hpbmdVbmlvbk92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJvdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNoaW5nVW5pb24i
KTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlzaGluZ1VuaW9uT3Zl
cmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm92ZXJs
b2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vpc2hpbmdVbmlvbiIpOwogfQogCi1zdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVk
TWV0aG9kV2l0aDJEaXN0aW5ndWlzaGluZ1VuaW9uczFCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1l
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X292ZXJsb2FkZWRNZXRob2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zMUJvZHkoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3Rl
ZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODA0
MSw3ICs4MDQxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJs
b2FkZWRNZXRob2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zMkJvZHkoSlNDOjpKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlw
ZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMp
CitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25fb3ZlcmxvYWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnMyQm9keShKU0M6
OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2Fs
bEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIg
Y2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC04MDU2LDcgKzgwNTYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T3ZlcmxvYWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnNPdmVybG9hZERpc3BhdGNo
ZXIoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFy
YW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hp
bmdVbmlvbnNPdmVybG9hZERpc3BhdGNoZXIoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0
aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODA2NiwyNCArODA2NiwyNCBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgaWYgKGFyZ3NDb3VudCA9
PSAxKSB7CiAgICAgICAgIEpTVmFsdWUgZGlzdGluZ3Vpc2hpbmdBcmcgPSBjYWxsRnJhbWUtPnVu
Y2hlY2tlZEFyZ3VtZW50KDApOwogICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmpl
Y3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE9iaj4o
dm0pKQotICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5p
b25zMUJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOwor
ICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbl9vdmVybG9hZGVkTWV0aG9kV2l0aDJEaXN0aW5ndWlzaGluZ1VuaW9uczFC
b2R5KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKICAgICAg
ICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vp
c2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3ROb2RlPih2bSkpCi0gICAgICAgICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnMxQm9keShsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7CisgICAgICAgICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRN
ZXRob2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zMUJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwg
Y2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOwogICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcu
aXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVz
dEludGVyZmFjZT4odm0pKQotICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoMkRpc3Rp
bmd1aXNoaW5nVW5pb25zMkJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0
ZWRUaGlzKSkpOworICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZGVkTWV0aG9kV2l0aDJEaXN0aW5ndWlz
aGluZ1VuaW9uczJCb2R5KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhp
cykpKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzTnVtYmVyKCkpCi0gICAgICAg
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnMyQm9keShsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7Ci0gICAgICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVy
bG9hZGVkTWV0aG9kV2l0aDJEaXN0aW5ndWlzaGluZ1VuaW9uczJCb2R5KGxleGljYWxHbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRl
ZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnMyQm9keShsZXhpY2FsR2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7CisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZFdp
dGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnMyQm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUsIGNhc3RlZFRoaXMpKSk7CiAgICAgfQogICAgIHJldHVybiBhcmdzQ291bnQgPCAxID8gdGhy
b3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3Vn
aEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKSA6IHRocm93Vk1UeXBlRXJyb3Io
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoMkRp
c3Rpbmd1aXNoaW5nVW5pb25zLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZGVkTWV0aG9kV2l0aDJEaXN0aW5ndWlzaGluZ1Vu
aW9ucywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hp
bmdVbmlvbnNPdmVybG9hZERpc3BhdGNoZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAib3ZlcmxvYWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnMiKTsKKyAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25fb3ZlcmxvYWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnNPdmVybG9hZERp
c3BhdGNoZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAib3ZlcmxvYWRlZE1l
dGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnMiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhv
ZFdpdGhOb25EaXN0aW5ndWlzaGluZ1VuaW9uMUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURM
T3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3Zl
cmxvYWRlZE1ldGhvZFdpdGhOb25EaXN0aW5ndWlzaGluZ1VuaW9uMUJvZHkoSlNDOjpKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
dHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRo
aXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODEwMSw3
ICs4MTAxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2Fk
ZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbjJCb2R5KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVu
YW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQor
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uX292ZXJsb2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbjJCb2R5KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxs
RnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBj
YXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTgxMTksNyArODExOSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
dmVybG9hZGVkTWV0aG9kV2l0aE5vbkRpc3Rpbmd1aXNoaW5nVW5pb25PdmVybG9hZERpc3BhdGNo
ZXIoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFy
YW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZFdpdGhOb25EaXN0aW5ndWlz
aGluZ1VuaW9uT3ZlcmxvYWREaXNwYXRjaGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJh
dGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8m
IHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTgxMjksMTkgKzgxMjksMTkgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIGlmIChhcmdzQ291bnQg
PT0gMikgewogICAgICAgICBKU1ZhbHVlIGRpc3Rpbmd1aXNoaW5nQXJnID0gY2FsbEZyYW1lLT51
bmNoZWNrZWRBcmd1bWVudCgxKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2Jq
ZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3RPYmo+
KHZtKSkKLSAgICAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE5vbkRpc3Rpbmd1aXNoaW5n
VW5pb24xQm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7
CisgICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlv
bjFCb2R5KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKICAg
ICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGlu
Z3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3ROb2RlPih2bSkpCi0gICAgICAgICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRlZE1ldGhvZFdpdGhOb25EaXN0aW5ndWlzaGluZ1VuaW9uMkJvZHkobGV4aWNhbEdsb2Jh
bE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOworICAgICAgICAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9h
ZGVkTWV0aG9kV2l0aE5vbkRpc3Rpbmd1aXNoaW5nVW5pb24yQm9keShsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7CiAgICAgfQogICAgIHJldHVybiBhcmdzQ291
bnQgPCAyID8gdGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNy
ZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKSA6IHRocm93
Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CiAKLUpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZFdpdGhOb25E
aXN0aW5ndWlzaGluZ1VuaW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0
aE5vbkRpc3Rpbmd1aXNoaW5nVW5pb25PdmVybG9hZERpc3BhdGNoZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAib3ZlcmxvYWRlZE1ldGhvZFdpdGhOb25EaXN0aW5ndWlzaGlu
Z1VuaW9uIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hp
bmdVbmlvbk92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJvdmVybG9hZGVkTWV0aG9kV2l0aE5vbkRpc3Rpbmd1aXNoaW5nVW5pb24iKTsKIH0KIAot
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlvbjFCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElE
TE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292
ZXJsb2FkV2l0aE51bGxhYmxlVW5pb24xQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRv
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04MTU2LDcgKzgxNTYsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlv
bjJCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFz
c1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkV2l0aE51bGxhYmxlVW5pb24yQm9k
eShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJh
bWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC04MTcxLDcgKzgxNzEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlvbk92ZXJsb2FkRGlzcGF0Y2hlcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZy
YW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2Fz
dGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbl9vdmVybG9hZFdpdGhOdWxsYWJsZVVuaW9uT3ZlcmxvYWREaXNwYXRjaGVy
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1l
KiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFt
ZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTgxODEsMjQgKzgxODEsMjQgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdAogICAgIGlmIChhcmdzQ291bnQgPT0gMSkgewogICAgICAgICBKU1ZhbHVlIGRp
c3Rpbmd1aXNoaW5nQXJnID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKICAgICAg
ICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0gICAgICAgICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlvbjFCb2R5KGxleGljYWxHbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRXaXRoTnVsbGFi
bGVVbmlvbjFCb2R5KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykp
KTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3Qo
ZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1Rlc3RPYmo+KHZtKSkKLSAgICAgICAgICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZFdpdGhOdWxsYWJsZVVuaW9uMUJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLCBjYXN0ZWRUaGlzKSkpOworICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZFdpdGhOdWxsYWJs
ZVVuaW9uMUJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkp
OwogICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09iamVjdChk
aXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVzdE5vZGU+KHZtKSkKLSAgICAgICAgICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZFdpdGhOdWxsYWJsZVVuaW9uMUJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLCBjYXN0ZWRUaGlzKSkpOworICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZFdpdGhOdWxsYWJs
ZVVuaW9uMUJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkp
OwogICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNOdW1iZXIoKSkKLSAgICAgICAgICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZFdpdGhOdWxsYWJsZVVuaW9uMkJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLCBjYXN0ZWRUaGlzKSkpOwotICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlv
bjJCb2R5KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKKyAg
ICAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25fb3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlvbjJCb2R5KGxleGljYWxHbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZFdpdGhO
dWxsYWJsZVVuaW9uMkJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRU
aGlzKSkpOwogICAgIH0KICAgICByZXR1cm4gYXJnc0NvdW50IDwgMSA/IHRocm93Vk1FcnJvcihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNF
cnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSkgOiB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZVVuaW9uLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9h
ZFdpdGhOdWxsYWJsZVVuaW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJs
ZVVuaW9uT3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgIm92ZXJsb2FkV2l0aE51bGxhYmxlVW5pb24iKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3ZlcmxvYWRXaXRo
TnVsbGFibGVVbmlvbk92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJvdmVybG9hZFdpdGhOdWxsYWJsZVVuaW9uIik7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2Fk
V2l0aE9wdGlvbmFsVW5pb24xQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZFdpdGhP
cHRpb25hbFVuaW9uMUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODIxMyw3ICs4MjEzLDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE9wdGlvbmFsVW5pb24yQm9keShKU0M6
OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2Fs
bEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIg
Y2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZFdpdGhPcHRpb25hbFVuaW9uMkJvZHkoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3Rl
ZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODIy
OCw3ICs4MjI4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJs
b2FkV2l0aE9wdGlvbmFsVW5pb25PdmVybG9hZERpc3BhdGNoZXIoSlNDOjpKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5h
bWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25fb3ZlcmxvYWRXaXRoT3B0aW9uYWxVbmlvbk92ZXJsb2FkRGlzcGF0Y2hlcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1l
LCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVk
VGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04MjM2
LDI3ICs4MjM2LDI3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QK
ICAgICBVTlVTRURfUEFSQU0oY2FsbEZyYW1lKTsKICAgICBzaXplX3QgYXJnc0NvdW50ID0gc3Rk
OjptaW48c2l6ZV90PigxLCBjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSk7CiAgICAgaWYgKGFy
Z3NDb3VudCA9PSAwKSB7Ci0gICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhPcHRpb25hbFVuaW9uMUJvZHko
bGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOworICAgICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X292ZXJsb2FkV2l0aE9wdGlvbmFsVW5pb24xQm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUsIGNhc3RlZFRoaXMpKSk7CiAgICAgfQogICAgIGlmIChhcmdzQ291bnQgPT0gMSkgewog
ICAgICAgICBKU1ZhbHVlIGRpc3Rpbmd1aXNoaW5nQXJnID0gY2FsbEZyYW1lLT51bmNoZWNrZWRB
cmd1bWVudCgwKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzVW5kZWZpbmVkKCkp
Ci0gICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoT3B0aW9uYWxVbmlvbjFCb2R5KGxleGljYWxHbG9i
YWxPYmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKKyAgICAgICAgICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3Zlcmxv
YWRXaXRoT3B0aW9uYWxVbmlvbjFCb2R5KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwg
Y2FzdGVkVGhpcykpKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzQm9vbGVhbigp
KQotICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE9wdGlvbmFsVW5pb24xQm9keShsZXhpY2FsR2xv
YmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7CisgICAgICAgICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJs
b2FkV2l0aE9wdGlvbmFsVW5pb24xQm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUs
IGNhc3RlZFRoaXMpKSk7CiAgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc051bWJlcigp
KQotICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE9wdGlvbmFsVW5pb24yQm9keShsZXhpY2FsR2xv
YmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7Ci0gICAgICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdp
dGhPcHRpb25hbFVuaW9uMUJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0
ZWRUaGlzKSkpOworICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZFdpdGhPcHRpb25hbFVuaW9uMkJvZHko
bGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOworICAgICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X292ZXJsb2FkV2l0aE9wdGlvbmFsVW5pb24xQm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUsIGNhc3RlZFRoaXMpKSk7CiAgICAgfQogICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwogfQogCi1KU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhPcHRpb25hbFVu
aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbl9vdmVybG9hZFdpdGhPcHRpb25hbFVuaW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9h
ZFdpdGhPcHRpb25hbFVuaW9uT3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgIm92ZXJsb2FkV2l0aE9wdGlvbmFsVW5pb24iKTsKKyAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25f
b3ZlcmxvYWRXaXRoT3B0aW9uYWxVbmlvbk92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJvdmVybG9hZFdpdGhPcHRpb25hbFVuaW9uIik7CiB9CiAK
LXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlTm9uRGlzdGluZ3Vpc2hpbmdQYXJhbWV0ZXIxQm9keShK
U0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSog
Y2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0
ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZFdpdGhOdWxsYWJsZU5vbkRpc3Rpbmd1aXNoaW5n
UGFyYW1ldGVyMUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtODI3NCw3ICs4Mjc0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlTm9uRGlzdGluZ3Vpc2hpbmdQ
YXJhbWV0ZXIyQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2Jq
Pjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZFdpdGhOdWxsYWJsZU5v
bkRpc3Rpbmd1aXNoaW5nUGFyYW1ldGVyMkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0
byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODI5Miw3ICs4MjkyLDcgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlTm9u
RGlzdGluZ3Vpc2hpbmdQYXJhbWV0ZXJPdmVybG9hZERpc3BhdGNoZXIoSlNDOjpKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlw
ZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMp
CitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25fb3ZlcmxvYWRXaXRoTnVsbGFibGVOb25EaXN0aW5ndWlzaGluZ1BhcmFtZXRlck92ZXJs
b2FkRGlzcGF0Y2hlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2Jq
Pjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC04MzAyLDIwICs4MzAyLDIwIEBAIHN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBpZiAoYXJnc0NvdW50ID09IDIpIHsKICAgICAg
ICAgSlNWYWx1ZSBkaXN0aW5ndWlzaGluZ0FyZyA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1l
bnQoMSk7CiAgICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2Jq
ZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNUZXN0Tm9kZT4odm0pKQotICAgICAg
ICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlTm9uRGlzdGluZ3Vpc2hpbmdQYXJhbWV0ZXIxQm9k
eShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7CisgICAgICAg
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uX292ZXJsb2FkV2l0aE51bGxhYmxlTm9uRGlzdGluZ3Vpc2hpbmdQYXJhbWV0ZXIxQm9k
eShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7CiAgICAgICAg
IGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc051bWJlcigpKQotICAgICAgICAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2Fk
V2l0aE51bGxhYmxlTm9uRGlzdGluZ3Vpc2hpbmdQYXJhbWV0ZXIyQm9keShsZXhpY2FsR2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7Ci0gICAgICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhO
dWxsYWJsZU5vbkRpc3Rpbmd1aXNoaW5nUGFyYW1ldGVyMkJvZHkobGV4aWNhbEdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOworICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZFdpdGhO
dWxsYWJsZU5vbkRpc3Rpbmd1aXNoaW5nUGFyYW1ldGVyMkJvZHkobGV4aWNhbEdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOworICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkV2l0aE51bGxh
YmxlTm9uRGlzdGluZ3Vpc2hpbmdQYXJhbWV0ZXIyQm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBj
YWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7CiAgICAgfQogICAgIHJldHVybiBhcmdzQ291bnQgPCAy
ID8gdGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKSA6IHRocm93Vk1UeXBl
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CiAKLUpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxh
YmxlTm9uRGlzdGluZ3Vpc2hpbmdQYXJhbWV0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX292ZXJsb2FkV2l0aE51bGxhYmxlTm9uRGlz
dGluZ3Vpc2hpbmdQYXJhbWV0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxh
YmxlTm9uRGlzdGluZ3Vpc2hpbmdQYXJhbWV0ZXJPdmVybG9hZERpc3BhdGNoZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAib3ZlcmxvYWRXaXRoTnVsbGFibGVOb25EaXN0aW5n
dWlzaGluZ1BhcmFtZXRlciIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vdmVybG9hZFdpdGhOdWxsYWJsZU5vbkRp
c3Rpbmd1aXNoaW5nUGFyYW1ldGVyT3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIm92ZXJsb2FkV2l0aE51bGxhYmxlTm9uRGlzdGluZ3Vpc2hpbmdQ
YXJhbWV0ZXIiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZEJvZHkoSlNDOjpKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3N0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9u
X2NsYXNzTWV0aG9kQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTgzMjYsMTIgKzgzMjYsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1
Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25fY2xhc3NNZXRob2QsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3Rv
ckZ1bmN0aW9uQ2xhc3NNZXRob2RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImNsYXNzTWV0aG9kIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+Ojpj
YWxsU3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25fY2xhc3NNZXRob2RCb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNsYXNzTWV0aG9kIik7CiB9CiAKLXN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0
aW9uQ2xhc3NNZXRob2RXaXRoT3B0aW9uYWxCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbl9jbGFzc01l
dGhvZFdpdGhPcHRpb25hbEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC04MzQzLDEyICs4MzQzLDEyIEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMTG9uZz4oVGVzdE9iajo6Y2xhc3NNZXRob2RX
aXRoT3B0aW9uYWwoV1RGTW92ZShhcmcpKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhPcHRpb25hbCwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlv
bl9jbGFzc01ldGhvZFdpdGhPcHRpb25hbCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpjYWxsU3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFz
c01ldGhvZFdpdGhPcHRpb25hbEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAiY2xhc3NNZXRob2RXaXRoT3B0aW9uYWwiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OmNhbGxTdGF0aWM8anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbl9jbGFzc01l
dGhvZFdpdGhPcHRpb25hbEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
Y2xhc3NNZXRob2RXaXRoT3B0aW9uYWwiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZDJCb2R5KEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29u
c3RydWN0b3JGdW5jdGlvbl9jbGFzc01ldGhvZDJCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgYXV0
byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODM1NywxMyArODM1NywxMyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsIChKU1ZhbHVlOjplbmNvZGUoSlNUZXN0T2JqOjpjbGFzc01ldGhv
ZDIoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUpKSkpOwogfQogCi1KU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kMiwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlv
bl9jbGFzc01ldGhvZDIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2Jq
Pjo6Y2FsbFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2QyQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjbGFzc01ldGhvZDIiKTsKKyAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGxTdGF0aWM8anNUZXN0T2JqQ29u
c3RydWN0b3JGdW5jdGlvbl9jbGFzc01ldGhvZDJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgImNsYXNzTWV0aG9kMiIpOwogfQogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEp
Ci1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JG
dW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxMUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3N0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uX292ZXJsb2Fk
ZWRNZXRob2QxMUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC04MzgwLDcgKzgzODAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xKQotc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rp
b25PdmVybG9hZGVkTWV0aG9kMTJCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbl9vdmVybG9hZGVkTWV0
aG9kMTJCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtODM5OCw3ICs4Mzk4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdAogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCiAKLXN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uT3ZlcmxvYWRl
ZE1ldGhvZDFPdmVybG9hZERpc3BhdGNoZXIoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3N0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uX292ZXJsb2FkZWRN
ZXRob2QxT3ZlcmxvYWREaXNwYXRjaGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgYXV0byYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODQwOSwyMyArODQwOSwyMyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgICAgIEpTVmFsdWUgZGlzdGluZ3Vp
c2hpbmdBcmcgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwogI2lmIEVOQUJMRShD
b25kaXRpb24xKQogICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNOdW1iZXIoKSkKLSAg
ICAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqQ29uc3Ry
dWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxMUJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwg
Y2FsbEZyYW1lKSkpOworICAgICAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
IChqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2QxMUJvZHkobGV4
aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSkpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRp
dGlvbjEpCi0gICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2Jq
Q29uc3RydWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxMkJvZHkobGV4aWNhbEdsb2JhbE9i
amVjdCwgY2FsbEZyYW1lKSkpOworICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25fb3ZlcmxvYWRlZE1ldGhvZDEyQm9keShs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpKSk7CiAjZW5kaWYKICAgICB9CiAgICAgcmV0
dXJuIGFyZ3NDb3VudCA8IDEgPyB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVj
dCkpIDogdGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsK
IH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rp
b25PdmVybG9hZGVkTWV0aG9kMSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqQ29uc3RydWN0b3JGdW5jdGlvbl9vdmVybG9hZGVkTWV0aG9kMSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsU3RhdGljPGpzVGVzdE9iakNvbnN0cnVj
dG9yRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMU92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJvdmVybG9hZGVkTWV0aG9kMSIpOworICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3Rv
ckZ1bmN0aW9uX292ZXJsb2FkZWRNZXRob2QxT3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm92ZXJsb2FkZWRNZXRob2QxIik7CiB9CiAKICNlbmRp
ZgogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURM
T3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY2xh
c3NNZXRob2RXaXRoQ2xhbXBCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg0NDUsMTIgKzg0NDUsMTIgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jbGFzc01ldGhvZFdpdGhD
bGFtcCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoQ2xhbXBCb2R5PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNsYXNzTWV0aG9kV2l0aENsYW1wIik7CisgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uX2NsYXNzTWV0aG9kV2l0aENsYW1wQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJjbGFzc01ldGhvZFdpdGhDbGFtcCIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdp
dGhDbGFtcE9uT3B0aW9uYWxCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2NsYXNzTWV0aG9kV2l0
aENsYW1wT25PcHRpb25hbEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODQ2NSwxMiArODQ2NSwxMiBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoQ2xhbXBPbk9wdGlvbmFsLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jbGFzc01l
dGhvZFdpdGhDbGFtcE9uT3B0aW9uYWwsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0
aENsYW1wT25PcHRpb25hbEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
Y2xhc3NNZXRob2RXaXRoQ2xhbXBPbk9wdGlvbmFsIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2NsYXNzTWV0aG9k
V2l0aENsYW1wT25PcHRpb25hbEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAiY2xhc3NNZXRob2RXaXRoQ2xhbXBPbk9wdGlvbmFsIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9k
V2l0aEVuZm9yY2VSYW5nZUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY2xhc3NNZXRob2RXaXRo
RW5mb3JjZVJhbmdlQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0
T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC04NDkwLDEyICs4NDkwLDEyIEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2UsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2NsYXNzTWV0aG9kV2l0
aEVuZm9yY2VSYW5nZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+
OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoRW5mb3JjZVJh
bmdlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjbGFzc01ldGhvZFdp
dGhFbmZvcmNlUmFuZ2UiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNh
bGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdl
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjbGFzc01ldGhvZFdpdGhF
bmZvcmNlUmFuZ2UiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlT25PcHRp
b25hbEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNs
YXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdl
T25PcHRpb25hbEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtODUxMCwxMiArODUxMCwxMiBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlT25PcHRpb25hbCwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY2xhc3NN
ZXRob2RXaXRoRW5mb3JjZVJhbmdlT25PcHRpb25hbCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NN
ZXRob2RXaXRoRW5mb3JjZVJhbmdlT25PcHRpb25hbEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAiY2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlT25PcHRpb25hbCIpOwor
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbl9jbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2VPbk9wdGlvbmFsQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFu
Z2VPbk9wdGlvbmFsIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5jZUJv
ZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFy
YW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlQm9k
eShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJh
bWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC04NTMyLDEyICs4NTMyLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
fQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2UsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1
ZW5jZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoVW5zaWduZWRM
b25nU2VxdWVuY2UiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNl
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoVW5zaWdu
ZWRMb25nU2VxdWVuY2UiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RyaW5nQXJyYXlGdW5jdGlvbkJvZHkoSlNDOjpK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNh
c3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25fc3RyaW5nQXJyYXlGdW5jdGlvbkJvZHkoSlNDOjpKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5h
bWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7
CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODU1MiwxMiArODU1
MiwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETFNlcXVl
bmNlPElETERPTVN0cmluZz4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xv
YmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc3RyaW5nQXJyYXlGdW5jdGlvbihXVEZNb3Zl
KHZhbHVlcykpKSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9zdHJpbmdBcnJheUZ1bmN0aW9uLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0aW9uQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJzdHJpbmdBcnJheUZ1bmN0aW9uIik7CisgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3N0
cmluZ0FycmF5RnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
InN0cmluZ0FycmF5RnVuY3Rpb24iKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRG9tU3RyaW5nTGlzdEZ1bmN0aW9uQm9k
eShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJh
bWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbl9kb21TdHJpbmdMaXN0RnVuY3Rpb25Cb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0
ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg1
NzIsMTIgKzg1NzIsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9K
UzxJRExJbnRlcmZhY2U8RE9NU3RyaW5nTGlzdD4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fz
dGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuZG9tU3RyaW5nTGlzdEZ1
bmN0aW9uKCp2YWx1ZXMpKSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25Eb21TdHJpbmdMaXN0RnVuY3Rpb24sIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2RvbVN0cmluZ0xpc3RG
dW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxs
PGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRG9tU3RyaW5nTGlzdEZ1bmN0aW9uQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJkb21TdHJpbmdMaXN0RnVuY3Rpb24iKTsK
KyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25fZG9tU3RyaW5nTGlzdEZ1bmN0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJkb21TdHJpbmdMaXN0RnVuY3Rpb24iKTsKIH0KIAotc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3BlcmF0
aW9uV2l0aE9wdGlvbmFsVW5pb25QYXJhbWV0ZXJCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElE
TE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX29w
ZXJhdGlvbldpdGhPcHRpb25hbFVuaW9uUGFyYW1ldGVyQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFt
ZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsK
ICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04NTkyLDEyICs4NTky
LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcGVyYXRpb25XaXRoT3B0aW9uYWxV
bmlvblBhcmFtZXRlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25fb3BlcmF0aW9uV2l0aE9wdGlvbmFsVW5pb25QYXJhbWV0ZXIsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk9wZXJhdGlvbldpdGhPcHRpb25hbFVuaW9uUGFyYW1ldGVyQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJvcGVyYXRpb25XaXRoT3B0aW9uYWxVbmlv
blBhcmFtZXRlciIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vcGVyYXRpb25XaXRoT3B0aW9uYWxVbmlvblBhcmFt
ZXRlckJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAib3BlcmF0aW9uV2l0
aE9wdGlvbmFsVW5pb25QYXJhbWV0ZXIiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFuZFdpdGhvdXRO
dWxsYWJsZVNlcXVlbmNlQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNU
ZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoQW5kV2l0
aG91dE51bGxhYmxlU2VxdWVuY2VCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg2MTcsMTIgKzg2MTcsMTIgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVTZXF1ZW5j
ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25fbWV0aG9kV2l0aEFuZFdpdGhvdXROdWxsYWJsZVNlcXVlbmNlLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoQW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2VCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVTZXF1ZW5j
ZSIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoQW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2VCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhBbmRXaXRob3V0
TnVsbGFibGVTZXF1ZW5jZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZEJvZHkoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3Rl
ZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25fZ2V0RWxlbWVudEJ5SWRCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9w
ZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1
dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg2MzcsMTIgKzg2MzcsMTIgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExOdWxsYWJsZTxJRExJ
bnRlcmZhY2U8RWxlbWVudD4+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmds
b2JhbE9iamVjdCgpLCBpbXBsLmdldEVsZW1lbnRCeUlkKFdURk1vdmUoZWxlbWVudElkKSkpKSk7
CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkdldEVsZW1lbnRCeUlkLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl9nZXRFbGVtZW50QnlJZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0RWxl
bWVudEJ5SWRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImdldEVsZW1l
bnRCeUlkIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uX2dldEVsZW1lbnRCeUlkQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJnZXRFbGVtZW50QnlJZCIpOwogfQogCi1zdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRTVkdEb2N1
bWVudEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNs
YXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fZ2V0U1ZHRG9jdW1lbnRCb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0
ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg2
NTIsMTIgKzg2NTIsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9K
UzxJRExJbnRlcmZhY2U8RG9jdW1lbnQ+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRo
aXMtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBCaW5kaW5nU2VjdXJpdHk6OmNoZWNrU2Vj
dXJpdHlGb3JOb2RlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLmdldFNWR0RvY3VtZW50KCkp
KSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25HZXRTVkdEb2N1bWVudCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25fZ2V0U1ZHRG9jdW1lbnQsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdl
dFNWR0RvY3VtZW50Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJnZXRT
VkdEb2N1bWVudCIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9nZXRTVkdEb2N1bWVudEJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZ2V0U1ZHRG9jdW1lbnQiKTsKIH0KIAotc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVy
dDFCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFz
c1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2NvbnZlcnQxQm9keShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBl
bmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykK
IHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04Njc0LDEyICs4
Njc0LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MSwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY29udmVydDEs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQxQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJjb252ZXJ0MSIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2Jq
Pjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jb252ZXJ0MUJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY29udmVydDEiKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDJC
b2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZy
YW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1Bh
cmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2NvbnZlcnQyQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFt
ZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsK
ICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04Njk2LDEyICs4Njk2
LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MiwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY29udmVydDIsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkNvbnZlcnQyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJjb252ZXJ0MiIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jb252ZXJ0MkJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY29udmVydDIiKTsKIH0KIAotc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDNCb2R5
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1l
KiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFt
ZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uX2NvbnZlcnQzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAg
ICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04NzE4LDEyICs4NzE4LDEy
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MywgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY29udmVydDMsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkNvbnZlcnQzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJjb252ZXJ0MyIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2Fs
bDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jb252ZXJ0M0JvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAiY29udmVydDMiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDRCb2R5KEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBj
YWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRl
ciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uX2NvbnZlcnQ0Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04NzQwLDEyICs4NzQwLDEyIEBA
IHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0NCwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY29udmVydDQsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewot
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkNvbnZlcnQ0Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJjb252ZXJ0NCIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jb252ZXJ0NEJvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAiY29udmVydDQiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTXV0YWJsZVBvaW50RnVuY3Rp
b25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFz
c1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX211dGFibGVQb2ludEZ1bmN0aW9uQm9keShKU0M6
OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2Fs
bEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIg
Y2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC04NzU1LDEyICs4NzU1LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2Rl
KHRvSlM8SURMSW50ZXJmYWNlPFNWR1BvaW50Pj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0
ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC5tdXRhYmxlUG9pbnRGdW5jdGlvbigpKSkpOwog
fQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
dXRhYmxlUG9pbnRGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25fbXV0YWJsZVBvaW50RnVuY3Rpb24sIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk11dGFibGVQb2ludEZ1bmN0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJtdXRhYmxlUG9pbnRGdW5jdGlvbiIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9tdXRhYmxlUG9pbnRG
dW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibXV0YWJsZVBv
aW50RnVuY3Rpb24iKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3JhbmdlQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9v
cmFuZ2VCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpD
bGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTg3NzIsMTIgKzg3NzIsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk9yYW5nZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25fb3JhbmdlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcmFuZ2VCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm9yYW5nZSIpOworICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9vcmFu
Z2VCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm9yYW5nZSIpOwogfQog
Ci1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25WYXJpYWRpY1N0cmluZ01ldGhvZEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fdmFyaWFk
aWNTdHJpbmdNZXRob2RCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg3OTYsMTIgKzg3OTYsMTIgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblZhcmlhZGljU3RyaW5nTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl92YXJpYWRpY1N0cmluZ01ldGhv
ZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNTdHJpbmdNZXRob2RCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZhcmlhZGljU3RyaW5nTWV0aG9kIik7CisgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uX3ZhcmlhZGljU3RyaW5nTWV0aG9kQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJ2YXJpYWRpY1N0cmluZ01ldGhvZCIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY0RvdWJsZU1l
dGhvZEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNs
YXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fdmFyaWFkaWNEb3VibGVNZXRob2RCb2R5KEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBj
YWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRl
ciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTg4MjAsMTIgKzg4MjAsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
LUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlh
ZGljRG91YmxlTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl92YXJpYWRpY0RvdWJsZU1ldGhvZCwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
VmFyaWFkaWNEb3VibGVNZXRob2RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgInZhcmlhZGljRG91YmxlTWV0aG9kIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3ZhcmlhZGljRG91YmxlTWV0
aG9kQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ2YXJpYWRpY0RvdWJs
ZU1ldGhvZCIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY05vZGVNZXRob2RCb2R5KEpTQzo6SlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5
cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlz
KQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uX3ZhcmlhZGljTm9kZU1ldGhvZEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0
byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODg0NCwxMiArODg0NCwxMiBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNOb2RlTWV0aG9kLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl92YXJpYWRpY05v
ZGVNZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2Fs
bDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljTm9kZU1ldGhvZEJvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFyaWFkaWNOb2RlTWV0aG9kIik7CisgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uX3ZhcmlhZGljTm9kZU1ldGhvZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAidmFyaWFkaWNOb2RlTWV0aG9kIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljVW5pb25NZXRo
b2RCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFz
c1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3ZhcmlhZGljVW5pb25NZXRob2RCb2R5KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxs
RnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBj
YXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTg4NjgsMTIgKzg4NjgsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGlj
VW5pb25NZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uX3ZhcmlhZGljVW5pb25NZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlh
ZGljVW5pb25NZXRob2RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZh
cmlhZGljVW5pb25NZXRob2QiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fdmFyaWFkaWNVbmlvbk1ldGhvZEJvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFyaWFkaWNVbmlvbk1ldGhvZCIp
OwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25BbnlCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2FueUJvZHkoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3Rl
ZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODg5
MywxMiArODg5MywxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQW55LCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9hbnksIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkFueUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAiYW55Iik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uX2FueUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAiYW55Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25Cb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6Q2xh
c3NQYXJhbWV0ZXIgY2FzdGVkVGhpcywgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQor
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uX3Rlc3RQcm9taXNlRnVuY3Rpb25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJh
dGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhp
cywgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewogICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg5MTAsMTIgKzg5MTAsMTIgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RQcm9taXNlRnVuY3Rpb24s
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlPEpTVGVzdE9i
aj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0UHJvbWlzZUZ1bmN0aW9u
Iik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl90ZXN0UHJvbWlzZUZ1bmN0aW9uQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0UHJvbWlzZUZ1bmN0aW9uIik7
CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRmxvYXRBcmd1bWVudEJvZHkoSlNDOjpK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpD
bGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2Up
CitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25fdGVzdFByb21pc2VGdW5jdGlvbldpdGhGbG9hdEFyZ3VtZW50Qm9keShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1l
LCB0eXBlbmFtZSBJRExPcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlPEpTVGVzdE9iaj46OkNsYXNz
UGFyYW1ldGVyIGNhc3RlZFRoaXMsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsK
ICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04OTMyLDEyICs4OTMy
LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0
aEZsb2F0QXJndW1lbnQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX3Rlc3RQcm9taXNlRnVuY3Rpb25XaXRoRmxvYXRBcmd1bWVudCwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRmxv
YXRBcmd1bWVudEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdFBy
b21pc2VGdW5jdGlvbldpdGhGbG9hdEFyZ3VtZW50Iik7CisgICAgcmV0dXJuIElETE9wZXJhdGlv
blJldHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbl90ZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEZsb2F0QXJndW1lbnRCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRmxvYXRBcmd1
bWVudCIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEV4Y2VwdGlvbkJvZHkoSlND
OjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+
OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21p
c2UpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25fdGVzdFByb21pc2VGdW5jdGlvbldpdGhFeGNlcHRpb25Cb2R5KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUs
IHR5cGVuYW1lIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6Q2xhc3NQ
YXJhbWV0ZXIgY2FzdGVkVGhpcywgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewog
ICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg5NDksMTIgKzg5NDks
MTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRo
RXhjZXB0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbl90ZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEV4Y2VwdGlvbiwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAg
cmV0dXJuIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6Y2FsbDxqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0UHJvbWlzZUZ1bmN0aW9u
V2l0aEV4Y2VwdGlvbiIpOworICAgIHJldHVybiBJRExPcGVyYXRpb25SZXR1cm5pbmdQcm9taXNl
PEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fdGVzdFByb21pc2VG
dW5jdGlvbldpdGhFeGNlcHRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgInRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uIik7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9t
aXNlRnVuY3Rpb25XaXRoT3B0aW9uYWxJbnRBcmd1bWVudEJvZHkoSlNDOjpKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5h
bWUgSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRl
ciBjYXN0ZWRUaGlzLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCitzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fdGVzdFBy
b21pc2VGdW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50Qm9keShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBl
bmFtZSBJRExPcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1l
dGVyIGNhc3RlZFRoaXMsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKICAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04OTY5LDEyICs4OTY5LDEyIEBA
IHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aE9wdGlv
bmFsSW50QXJndW1lbnQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX3Rlc3RQcm9taXNlRnVuY3Rpb25XaXRoT3B0aW9uYWxJbnRBcmd1bWVu
dCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0
T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25X
aXRoT3B0aW9uYWxJbnRBcmd1bWVudEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAidGVzdFByb21pc2VGdW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50Iik7CisgICAg
cmV0dXJuIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6Y2FsbDxqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbl90ZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aE9wdGlvbmFsSW50
QXJndW1lbnRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RQcm9t
aXNlRnVuY3Rpb25XaXRoT3B0aW9uYWxJbnRBcmd1bWVudCIpOwogfQogCi1zdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlz
ZU92ZXJsb2FkZWRGdW5jdGlvbjFCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlv
blJldHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcywg
UmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RQcm9taXNlT3ZlcmxvYWRl
ZEZ1bmN0aW9uMUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uUmV0dXJuaW5n
UHJvbWlzZTxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzLCBSZWY8RGVmZXJy
ZWRQcm9taXNlPiYmIHByb21pc2UpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtODk4OSw3ICs4OTg5LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblRlc3RQcm9taXNlT3ZlcmxvYWRlZEZ1bmN0aW9uMkJvZHkoSlNDOjpKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
dHlwZW5hbWUgSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpDbGFzc1Bh
cmFtZXRlciBjYXN0ZWRUaGlzLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCitzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25f
dGVzdFByb21pc2VPdmVybG9hZGVkRnVuY3Rpb24yQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJ
RExPcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNh
c3RlZFRoaXMsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKICAgICBhdXRvJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05MDA0LDcgKzkwMDQsNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VPdmVybG9hZGVkRnVuY3Rp
b25PdmVybG9hZERpc3BhdGNoZXIoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uUmV0
dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzLCBSZWY8
RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fdGVzdFByb21pc2VPdmVybG9hZGVkRnVu
Y3Rpb25PdmVybG9hZERpc3BhdGNoZXIoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9u
UmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzLCBS
ZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtOTAxNCwyMCArOTAxNCwyMCBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgaWYgKGFyZ3NDb3VudCA9PSAxKSB7CiAgICAg
ICAgIEpTVmFsdWUgZGlzdGluZ3Vpc2hpbmdBcmcgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDApOwogICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09i
amVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTRmV0Y2hSZXF1ZXN0Pih2bSkpCi0g
ICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uVGVzdFByb21pc2VPdmVybG9hZGVkRnVuY3Rpb24yQm9keShsZXhpY2FsR2xv
YmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMsIFdURk1vdmUocHJvbWlzZSkpKSk7Cisg
ICAgICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uX3Rlc3RQcm9taXNlT3ZlcmxvYWRlZEZ1bmN0aW9uMkJvZHkobGV4aWNhbEds
b2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzLCBXVEZNb3ZlKHByb21pc2UpKSkpOwog
ICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNOdW1iZXIoKSkKLSAgICAgICAgICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25U
ZXN0UHJvbWlzZU92ZXJsb2FkZWRGdW5jdGlvbjFCb2R5KGxleGljYWxHbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSwgY2FzdGVkVGhpcywgV1RGTW92ZShwcm9taXNlKSkpKTsKLSAgICAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQ
cm9taXNlT3ZlcmxvYWRlZEZ1bmN0aW9uMUJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lLCBjYXN0ZWRUaGlzLCBXVEZNb3ZlKHByb21pc2UpKSkpOworICAgICAgICAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl90ZXN0
UHJvbWlzZU92ZXJsb2FkZWRGdW5jdGlvbjFCb2R5KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxG
cmFtZSwgY2FzdGVkVGhpcywgV1RGTW92ZShwcm9taXNlKSkpKTsKKyAgICAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl90ZXN0UHJv
bWlzZU92ZXJsb2FkZWRGdW5jdGlvbjFCb2R5KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSwgY2FzdGVkVGhpcywgV1RGTW92ZShwcm9taXNlKSkpKTsKICAgICB9CiAgICAgcmV0dXJuIGFy
Z3NDb3VudCA8IDEgPyB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29w
ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpIDog
dGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKIH0KIAot
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFBy
b21pc2VPdmVybG9hZGVkRnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RQcm9taXNlT3ZlcmxvYWRlZEZ1bmN0aW9uLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+
OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VPdmVybG9hZGVkRnVu
Y3Rpb25PdmVybG9hZERpc3BhdGNoZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAidGVzdFByb21pc2VPdmVybG9hZGVkRnVuY3Rpb24iKTsKKyAgICByZXR1cm4gSURMT3BlcmF0
aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uX3Rlc3RQcm9taXNlT3ZlcmxvYWRlZEZ1bmN0aW9uT3ZlcmxvYWREaXNwYXRjaGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RQcm9taXNlT3ZlcmxvYWRlZEZ1
bmN0aW9uIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbkJvZHkoSlNDOjpK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQorc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25fdGVzdFN0YXRpY1By
b21pc2VGdW5jdGlvbkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9t
aXNlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTkwMzgs
MTIgKzkwMzgsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY1By
b21pc2VGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29u
c3RydWN0b3JGdW5jdGlvbl90ZXN0U3RhdGljUHJvbWlzZUZ1bmN0aW9uLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpjYWxsU3RhdGlj
PGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGljUHJvbWlzZUZ1bmN0aW9uQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0U3RhdGljUHJvbWlzZUZ1
bmN0aW9uIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0
T2JqPjo6Y2FsbFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uX3Rlc3RTdGF0aWNQ
cm9taXNlRnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRl
c3RTdGF0aWNQcm9taXNlRnVuY3Rpb24iKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGljUHJvbWlzZUZ1
bmN0aW9uV2l0aEV4Y2VwdGlvbkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgUmVmPERlZmVycmVkUHJvbWlzZT4m
JiBwcm9taXNlKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNv
bnN0cnVjdG9yRnVuY3Rpb25fdGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbldpdGhFeGNlcHRpb25C
b2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZy
YW1lKiBjYWxsRnJhbWUsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKICAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05MDU0LDEyICs5MDU0LDEyIEBA
IHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblRlc3RTdGF0aWNQcm9taXNlRnVuY3Rpb25X
aXRoRXhjZXB0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25z
dHJ1Y3RvckZ1bmN0aW9uX3Rlc3RTdGF0aWNQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+
OjpjYWxsU3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGljUHJvbWlz
ZUZ1bmN0aW9uV2l0aEV4Y2VwdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAidGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbldpdGhFeGNlcHRpb24iKTsKKyAgICByZXR1
cm4gSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpjYWxsU3RhdGljPGpz
VGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25fdGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbldpdGhF
eGNlcHRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RTdGF0
aWNQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RDdXN0b21Qcm9t
aXNlRnVuY3Rpb25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvblJldHVybmlu
Z1Byb21pc2U8SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcywgUmVmPERlZmVy
cmVkUHJvbWlzZT4mJiBwcm9taXNlKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RDdXN0b21Qcm9taXNlRnVuY3Rpb25Cb2R5
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1l
KiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0
T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcywgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTkw
NjgsMTIgKzkwNjgsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoSlNWYWx1ZTo6ZW5jb2RlKGNh
c3RlZFRoaXMtPnRlc3RDdXN0b21Qcm9taXNlRnVuY3Rpb24oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsIFdURk1vdmUocHJvbWlzZSkpKSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0Q3VzdG9tUHJvbWlzZUZ1bmN0
aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbl90ZXN0Q3VzdG9tUHJvbWlzZUZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3Bl
cmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVGVzdEN1c3RvbVByb21pc2VGdW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAidGVzdEN1c3RvbVByb21pc2VGdW5jdGlvbiIpOworICAgIHJldHVy
biBJRExPcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25fdGVzdEN1c3RvbVByb21pc2VGdW5jdGlvbkJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdEN1c3RvbVByb21pc2VGdW5jdGlvbiIpOwog
fQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0
b3JGdW5jdGlvblRlc3RTdGF0aWNDdXN0b21Qcm9taXNlRnVuY3Rpb25Cb2R5KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUs
IFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uX3Rlc3RTdGF0aWNDdXN0b21Q
cm9taXNlRnVuY3Rpb25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJv
bWlzZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05MDgy
LDEyICs5MDgyLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKEpTVmFsdWU6OmVuY29kZShKU1Rl
c3RPYmo6OnRlc3RTdGF0aWNDdXN0b21Qcm9taXNlRnVuY3Rpb24oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsIFdURk1vdmUocHJvbWlzZSkpKSkpOwogfQogCi1KU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblRlc3RTdGF0aWNDdXN0b21Q
cm9taXNlRnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNv
bnN0cnVjdG9yRnVuY3Rpb25fdGVzdFN0YXRpY0N1c3RvbVByb21pc2VGdW5jdGlvbiwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6Y2Fs
bFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY0N1c3RvbVByb21p
c2VGdW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdFN0
YXRpY0N1c3RvbVByb21pc2VGdW5jdGlvbiIpOworICAgIHJldHVybiBJRExPcGVyYXRpb25SZXR1
cm5pbmdQcm9taXNlPEpTVGVzdE9iaj46OmNhbGxTdGF0aWM8anNUZXN0T2JqQ29uc3RydWN0b3JG
dW5jdGlvbl90ZXN0U3RhdGljQ3VzdG9tUHJvbWlzZUZ1bmN0aW9uQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0U3RhdGljQ3VzdG9tUHJvbWlzZUZ1bmN0aW9uIik7
CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblRlc3RDdXN0b21SZXR1cm5zT3duUHJvbWlzZUZ1bmN0aW9uQm9keShKU0M6OkpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZy
YW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlPEpTVGVzdE9iaj46OkNs
YXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fdGVzdEN1c3RvbVJldHVybnNPd25Qcm9taXNl
RnVuY3Rpb25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
Qzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvblJldHVybmluZ1By
b21pc2U8SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRv
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05MDk2LDEyICs5MDk2LDEyIEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT50ZXN0Q3VzdG9t
UmV0dXJuc093blByb21pc2VGdW5jdGlvbigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvblRlc3RDdXN0b21SZXR1cm5zT3duUHJvbWlzZUZ1bmN0aW9uLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl90ZXN0Q3VzdG9tUmV0
dXJuc093blByb21pc2VGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvblJl
dHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6Y2FsbFJldHVybmluZ093blByb21pc2U8anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0Q3VzdG9tUmV0dXJuc093blByb21pc2VGdW5jdGlvbkJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdEN1c3RvbVJldHVybnNP
d25Qcm9taXNlRnVuY3Rpb24iKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJv
bWlzZTxKU1Rlc3RPYmo+OjpjYWxsUmV0dXJuaW5nT3duUHJvbWlzZTxqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbl90ZXN0Q3VzdG9tUmV0dXJuc093blByb21pc2VGdW5jdGlvbkJvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdEN1c3RvbVJldHVybnNPd25Qcm9taXNl
RnVuY3Rpb24iKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFJldHVybnNPd25Qcm9taXNlQW5kUHJvbWlzZVByb3h5
RnVuY3Rpb25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
Qzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvblJldHVybmluZ1By
b21pc2U8SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl90ZXN0UmV0
dXJuc093blByb21pc2VBbmRQcm9taXNlUHJveHlGdW5jdGlvbkJvZHkoSlNDOjpKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlw
ZW5hbWUgSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFt
ZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTkxMTEsMTMgKzkxMTEsMTMgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjpl
bmNvZGUodG9KUzxJRExQcm9taXNlPElETFVuZGVmaW5lZD4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIGltcGwudGVzdFJldHVybnNPd25Qcm9taXNl
QW5kUHJvbWlzZVByb3h5RnVuY3Rpb24oKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFJldHVybnNPd25Qcm9taXNlQW5kUHJv
bWlzZVByb3h5RnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RSZXR1cm5zT3duUHJvbWlzZUFuZFByb21pc2VQcm94eUZ1
bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxK
U1Rlc3RPYmo+OjpjYWxsUmV0dXJuaW5nT3duUHJvbWlzZTxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblRlc3RSZXR1cm5zT3duUHJvbWlzZUFuZFByb21pc2VQcm94eUZ1bmN0aW9uQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0UmV0dXJuc093blByb21pc2VBbmRQ
cm9taXNlUHJveHlGdW5jdGlvbiIpOworICAgIHJldHVybiBJRExPcGVyYXRpb25SZXR1cm5pbmdQ
cm9taXNlPEpTVGVzdE9iaj46OmNhbGxSZXR1cm5pbmdPd25Qcm9taXNlPGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uX3Rlc3RSZXR1cm5zT3duUHJvbWlzZUFuZFByb21pc2VQcm94eUZ1bmN0aW9u
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0UmV0dXJuc093blBy
b21pc2VBbmRQcm9taXNlUHJveHlGdW5jdGlvbiIpOwogfQogCiAjaWYgRU5BQkxFKENPTkRJVElP
TjEpCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25Db25kaXRpb25hbE92ZXJsb2FkMUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURM
T3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY29u
ZGl0aW9uYWxPdmVybG9hZDFCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTkxMzUsNyArOTEzNSw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTkRJ
VElPTjIpCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25Db25kaXRpb25hbE92ZXJsb2FkMkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUg
SURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25f
Y29uZGl0aW9uYWxPdmVybG9hZDJCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTkxNTQsNyArOTE1NCw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKIAogI2lmIEVOQUJMRShDT05ESVRJT04x
KSB8fCBFTkFCTEUoQ09ORElUSU9OMikKIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxPdmVybG9hZE92ZXJsb2Fk
RGlzcGF0Y2hlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6
OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jb25kaXRpb25hbE92ZXJsb2FkT3Zlcmxv
YWREaXNwYXRjaGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
Qzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+
OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTkxNjUsMjMgKzkxNjUsMjMgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgICAgICBKU1ZhbHVlIGRpc3Rpbmd1aXNoaW5nQXJn
ID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKICNpZiBFTkFCTEUoQ09ORElUSU9O
MikKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzTnVtYmVyKCkpCi0gICAgICAgICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ29uZGl0aW9uYWxPdmVybG9hZDJCb2R5KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSwgY2FzdGVkVGhpcykpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAoanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY29uZGl0aW9uYWxPdmVybG9hZDJCb2R5
KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKICNlbmRpZgog
I2lmIEVOQUJMRShDT05ESVRJT04xKQotICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxPdmVybG9hZDFCb2R5
KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgY2FzdGVkVGhpcykpKTsKKyAgICAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bl9jb25kaXRpb25hbE92ZXJsb2FkMUJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
LCBjYXN0ZWRUaGlzKSkpOwogI2VuZGlmCiAgICAgfQogICAgIHJldHVybiBhcmdzQ291bnQgPCAx
ID8gdGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKSA6IHRocm93Vk1UeXBl
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CiAKLUpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsT3Zlcmxv
YWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uX2NvbmRpdGlvbmFsT3ZlcmxvYWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsT3Zl
cmxvYWRPdmVybG9hZERpc3BhdGNoZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAiY29uZGl0aW9uYWxPdmVybG9hZCIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jb25kaXRpb25hbE92ZXJsb2Fk
T3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNv
bmRpdGlvbmFsT3ZlcmxvYWQiKTsKIH0KIAogI2VuZGlmCiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblNpbmdsZUNvbmRpdGlvbmFs
T3ZlcmxvYWQxQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2Jq
Pjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9zaW5nbGVDb25kaXRpb25hbE92ZXJs
b2FkMUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNs
YXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtOTE5Nyw3ICs5MTk3LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdAogfQogCiAjaWYgRU5BQkxFKENPTkRJVElPTikKLXN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblNpbmdsZUNv
bmRpdGlvbmFsT3ZlcmxvYWQyQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9zaW5nbGVDb25kaXRp
b25hbE92ZXJsb2FkMkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTIxNCw3ICs5MjE0LDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogCiAjZW5kaWYKIAotc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU2luZ2xlQ29uZGl0aW9u
YWxPdmVybG9hZE92ZXJsb2FkRGlzcGF0Y2hlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9zaW5nbGVD
b25kaXRpb25hbE92ZXJsb2FkT3ZlcmxvYWREaXNwYXRjaGVyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1l
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewog
ICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTkyMjUsMTkgKzkyMjUs
MTkgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgICAgICBK
U1ZhbHVlIGRpc3Rpbmd1aXNoaW5nQXJnID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgw
KTsKICNpZiBFTkFCTEUoQ09ORElUSU9OKQogICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcu
aXNOdW1iZXIoKSkKLSAgICAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TaW5nbGVDb25kaXRpb25hbE92ZXJsb2FkMkJvZHko
bGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOworICAgICAgICAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbl9zaW5nbGVDb25kaXRpb25hbE92ZXJsb2FkMkJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwg
Y2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOwogI2VuZGlmCi0gICAgICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAoanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TaW5nbGVDb25kaXRp
b25hbE92ZXJsb2FkMUJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRU
aGlzKSkpOworICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uX3NpbmdsZUNvbmRpdGlvbmFsT3ZlcmxvYWQxQm9keShsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhc3RlZFRoaXMpKSk7CiAgICAgfQogICAgIHJldHVy
biBhcmdzQ291bnQgPCAxID8gdGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3Qp
KSA6IHRocm93Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CiB9
CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblNp
bmdsZUNvbmRpdGlvbmFsT3ZlcmxvYWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3NpbmdsZUNvbmRpdGlvbmFsT3ZlcmxvYWQsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvblNpbmdsZUNvbmRpdGlvbmFsT3ZlcmxvYWRPdmVybG9hZERpc3BhdGNoZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAic2luZ2xlQ29uZGl0aW9uYWxPdmVy
bG9hZCIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbl9zaW5nbGVDb25kaXRpb25hbE92ZXJsb2FkT3ZlcmxvYWREaXNw
YXRjaGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInNpbmdsZUNvbmRpdGlv
bmFsT3ZlcmxvYWQiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQXR0YWNoU2hhZG93Um9vdEJvZHkoSlNDOjpKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
dHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRo
aXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25fYXR0YWNoU2hhZG93Um9vdEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0
byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTI1NCwxMiArOTI1NCwxMiBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQXR0YWNoU2hhZG93Um9vdCwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fYXR0YWNoU2hhZG93
Um9vdCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQXR0YWNoU2hhZG93Um9vdEJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiYXR0YWNoU2hhZG93Um9vdCIpOworICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9h
dHRhY2hTaGFkb3dSb290Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJh
dHRhY2hTaGFkb3dSb290Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9wZXJhdGlvbldpdGhFeHRlcm5hbERpY3Rpb25h
cnlQYXJhbWV0ZXJCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RP
Ymo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX29wZXJhdGlvbldpdGhFeHRlcm5h
bERpY3Rpb25hcnlQYXJhbWV0ZXJCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTkyNzYsMTIgKzkyNzYsMTIgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk9wZXJhdGlvbldpdGhFeHRlcm5hbERpY3Rpb25hcnlQYXJh
bWV0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uX29wZXJhdGlvbldpdGhFeHRlcm5hbERpY3Rpb25hcnlQYXJhbWV0ZXIsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewot
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk9wZXJhdGlvbldpdGhFeHRlcm5hbERpY3Rpb25hcnlQYXJhbWV0ZXJCb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm9wZXJhdGlvbldpdGhFeHRlcm5hbERp
Y3Rpb25hcnlQYXJhbWV0ZXIiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fb3BlcmF0aW9uV2l0aEV4dGVybmFsRGlj
dGlvbmFyeVBhcmFtZXRlckJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
b3BlcmF0aW9uV2l0aEV4dGVybmFsRGljdGlvbmFyeVBhcmFtZXRlciIpOwogfQogCi1zdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CdWZm
ZXJTb3VyY2VQYXJhbWV0ZXJCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2J1ZmZlclNvdXJjZVBh
cmFtZXRlckJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlND
OjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtOTI5OCwxMiArOTI5OCwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQnVmZmVyU291cmNlUGFyYW1ldGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9idWZmZXJTb3VyY2VQYXJhbWV0ZXIsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkJ1ZmZlclNvdXJjZVBhcmFtZXRlckJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAiYnVmZmVyU291cmNlUGFyYW1ldGVyIik7CisgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
X2J1ZmZlclNvdXJjZVBhcmFtZXRlckJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAiYnVmZmVyU291cmNlUGFyYW1ldGVyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxlZ2FjeUNhbGxlck5hbWVk
Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxG
cmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQ
YXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9sZWdhY3lDYWxsZXJOYW1lZEJvZHkoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3Rl
ZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTMy
MCwxMiArOTMyMCwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTGVnYWN5Q2FsbGVy
TmFtZWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uX2xlZ2FjeUNhbGxlck5hbWVkLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25MZWdhY3lDYWxsZXJO
YW1lZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibGVnYWN5Q2FsbGVy
TmFtZWQiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25fbGVnYWN5Q2FsbGVyTmFtZWRCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgImxlZ2FjeUNhbGxlck5hbWVkIik7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RS
ZXR1cm5WYWx1ZU9wdGltaXphdGlvbkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0
aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fdGVzdFJldHVy
blZhbHVlT3B0aW1pemF0aW9uQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05MzQ1LDEyICs5MzQ1LDEyIEBAIHN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGFyZ3VtZW50MC52YWx1ZSgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9uLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl90ZXN0
UmV0dXJuVmFsdWVPcHRpbWl6YXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RSZXR1cm5WYWx1
ZU9wdGltaXphdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVz
dFJldHVyblZhbHVlT3B0aW1pemF0aW9uIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RSZXR1cm5WYWx1ZU9w
dGltaXphdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdFJl
dHVyblZhbHVlT3B0aW1pemF0aW9uIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RSZXR1cm5WYWx1ZU9wdGltaXph
dGlvbldpdGhFeGNlcHRpb25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RSZXR1cm5WYWx1
ZU9wdGltaXphdGlvbldpdGhFeGNlcHRpb25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9w
ZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1
dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTkzNzAsMTIgKzkzNzAsMTIgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoYXJndW1lbnQwLnZhbHVlKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJuVmFsdWVPcHRpbWl6YXRp
b25XaXRoRXhjZXB0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbl90ZXN0UmV0dXJuVmFsdWVPcHRpbWl6YXRpb25XaXRoRXhjZXB0aW9u
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJuVmFsdWVPcHRpbWl6YXRpb25XaXRoRXhjZXB0
aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0UmV0dXJuVmFs
dWVPcHRpbWl6YXRpb25XaXRoRXhjZXB0aW9uIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3Rlc3RSZXR1cm5WYWx1
ZU9wdGltaXphdGlvbldpdGhFeGNlcHRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgInRlc3RSZXR1cm5WYWx1ZU9wdGltaXphdGlvbldpdGhFeGNlcHRpb24iKTsKIH0K
IAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0Z1bmN0aW9uQm9keShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1l
LCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVk
VGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbl9jb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93RnVuY3Rpb25Cb2R5KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxs
RnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBj
YXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTkzODcsMTIgKzkzODcsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlv
bmFsbHlFeHBvc2VkVG9XaW5kb3dGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRv
d0Z1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNh
bGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93
RnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNvbmRpdGlv
bmFsbHlFeHBvc2VkVG9XaW5kb3dGdW5jdGlvbiIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jb25kaXRpb25hbGx5
RXhwb3NlZFRvV2luZG93RnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dGdW5jdGlvbiIpOwogfQogCi1zdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25D
b25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyRnVuY3Rpb25Cb2R5KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVu
YW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQor
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uX2NvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJGdW5jdGlvbkJvZHkoSlNDOjpKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
dHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRo
aXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTQwNCwx
MiArOTQwNCwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4
cG9zZWRUb1dvcmtlckZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyRnVuY3Rp
b24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJGdW5jdGlv
bkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY29uZGl0aW9uYWxseUV4
cG9zZWRUb1dvcmtlckZ1bmN0aW9uIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RP
Ymo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2NvbmRpdGlvbmFsbHlFeHBvc2Vk
VG9Xb3JrZXJGdW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
Y29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckZ1bmN0aW9uIik7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlv
bmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJGdW5jdGlvbkJvZHkoSlNDOjpKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlw
ZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMp
CitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25fY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckZ1bmN0aW9uQm9keShK
U0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSog
Y2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0
ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC05NDIxLDkgKzk0MjEsOSBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAot
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0
aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9jb25kaXRpb25hbGx5RXhw
b3NlZFRvV2luZG93QW5kV29ya2VyRnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlv
bmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJGdW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtl
ckZ1bmN0aW9uIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2NvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRX
b3JrZXJGdW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY29u
ZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckZ1bmN0aW9uIik7CiB9CiAKIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9k
YXNoX2xlYWRpbmdfZGFzaF9oeXBoZW5fZGFzaF9mdW5jdGlvbkJvZHkoSlNDOjpKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlw
ZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMp
CkBAIC05NDQzLDcgKzk0NDMsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uX2Rhc2hfbGVhZGluZ19kYXNoX2h5cGhlbl9kYXNoX2Z1bmN0aW9u
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICItbGVhZGluZy1oeXBoZW4t
ZnVuY3Rpb24iKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uVHJhaWxpbmdfZGFzaF9oeXBoZW5fZGFzaF9mdW5jdGlvbl9k
YXNoX0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNs
YXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25fdHJhaWxpbmdfZGFzaF9oeXBoZW5fZGFzaF9m
dW5jdGlvbl9kYXNoX0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTQ1NSwxMiArOTQ1NSwxMiBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVHJhaWxpbmdfZGFzaF9oeXBoZW5fZGFzaF9mdW5jdGlvbl9kYXNoXywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25f
dHJhaWxpbmdfZGFzaF9oeXBoZW5fZGFzaF9mdW5jdGlvbl9kYXNoXywgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uVHJhaWxpbmdfZGFzaF9oeXBoZW5fZGFzaF9mdW5jdGlvbl9kYXNoX0JvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidHJhaWxpbmctaHlwaGVuLWZ1bmN0aW9uLSIpOwor
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbl90cmFpbGluZ19kYXNoX2h5cGhlbl9kYXNoX2Z1bmN0aW9uX2Rhc2hfQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0cmFpbGluZy1oeXBoZW4tZnVuY3Rp
b24tIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkxlYWRpbmdfdW5kZXJzY29yZV9mdW5jdGlvbkJvZHkoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OkNsYXNzUGFyYW1ldGVyIGNhc3Rl
ZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25fbGVhZGluZ191bmRlcnNjb3JlX2Z1bmN0aW9uQm9keShKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0
eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhp
cykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05NDcyLDkg
Kzk0NzIsOSBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTGVhZGluZ191bmRlcnNjb3Jl
X2Z1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbl9sZWFkaW5nX3VuZGVyc2NvcmVfZnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkxlYWRpbmdfdW5kZXJzY29yZV9mdW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAibGVhZGluZ191bmRlcnNjb3JlX2Z1bmN0aW9uIik7CisgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX2xl
YWRpbmdfdW5kZXJzY29yZV9mdW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAibGVhZGluZ191bmRlcnNjb3JlX2Z1bmN0aW9uIik7CiB9CiAKIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbl9kb3VibGVf
bGVhZGluZ191bmRlcnNjb3JlX2Z1bmN0aW9uQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKQEAgLTk0OTQs
NyArOTQ5NCw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3QKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25fZG91YmxlX2xlYWRpbmdfdW5kZXJzY29yZV9mdW5jdGlvbkJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiX2RvdWJsZV9sZWFkaW5nX3VuZGVyc2NvcmVfZnVu
Y3Rpb24iKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uVHJhaWxpbmdfdW5kZXJzY29yZV9mdW5jdGlvbl9Cb2R5KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxs
RnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBj
YXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uX3RyYWlsaW5nX3VuZGVyc2NvcmVfZnVuY3Rpb25fQm9keShKU0M6OkpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZy
YW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2Fz
dGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05
NTA2LDEyICs5NTA2LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UcmFpbGluZ191
bmRlcnNjb3JlX2Z1bmN0aW9uXywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25fdHJhaWxpbmdfdW5kZXJzY29yZV9mdW5jdGlvbl8sIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvblRyYWlsaW5nX3VuZGVyc2NvcmVfZnVuY3Rpb25fQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0cmFpbGluZ191bmRlcnNjb3JlX2Z1bmN0aW9uXyIp
OworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbl90cmFpbGluZ191bmRlcnNjb3JlX2Z1bmN0aW9uX0JvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidHJhaWxpbmdfdW5kZXJzY29yZV9mdW5jdGlvbl8i
KTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uVG9TdHJpbmdCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3RvU3RyaW5nQm9k
eShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Q2xhc3NQYXJh
bWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC05NTIxLDkgKzk1MjEsOSBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVu
Y29kZSh0b0pTPElETFVTVlN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIGltcGwuc3RyaW5n
aWZpZXJBdHRyaWJ1dGUoKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uX3RvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Ub1N0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidG9TdHJp
bmciKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25fdG9TdHJpbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgInRvU3RyaW5nIik7CiB9CiAKIEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVzdE9iajo6
c3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZtKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Bl
cmF0aW9uQ29uZGl0aW9uYWwuY3BwCShyZXZpc2lvbiAyNjg1NDcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00OSwxMCArNDksMTAgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IC8vIEZ1bmN0aW9ucwogCiAjaWYgRU5BQkxFKENvbmRpdGlvbkJhc2UpCi1KU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBlRnVuY3Rpb25O
b25Db25kaXRpb25hbE9wZXJhdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBlRnVuY3Rpb25fbm9uQ29uZGl0aW9uYWxPcGVy
YXRpb24pOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbkJhc2UpICYmIEVOQUJMRShDb25k
aXRpb25PcGVyYXRpb24pCi1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9wZXJhdGlv
bkNvbmRpdGlvbmFsUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE9wZXJhdGlvbik7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBl
RnVuY3Rpb25fY29uZGl0aW9uYWxPcGVyYXRpb24pOwogI2VuZGlmCiAKIC8vIEF0dHJpYnV0ZXMK
QEAgLTExNSwxMiArMTE1LDEyIEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RP
cGVyYXQKIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T3BlcmF0aW9uQ29u
ZGl0aW9uYWxDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0
b3IpIH0gfSwKICNpZiBFTkFCTEUoQ29uZGl0aW9uQmFzZSkKLSAgICB7ICJub25Db25kaXRpb25h
bE9wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxQcm90b3R5cGVGdW5jdGlvbk5v
bkNvbmRpdGlvbmFsT3BlcmF0aW9uKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgIm5vbkNv
bmRpdGlvbmFsT3BlcmF0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFByb3RvdHlwZUZ1
bmN0aW9uX25vbkNvbmRpdGlvbmFsT3BlcmF0aW9uKSwgKGludHB0cl90KSAoMCkgfSB9LAogI2Vs
c2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAogI2VuZGlmCiAjaWYgRU5B
QkxFKENvbmRpdGlvbkJhc2UpICYmIEVOQUJMRShDb25kaXRpb25PcGVyYXRpb24pCi0gICAgeyAi
Y29uZGl0aW9uYWxPcGVyYXRpb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBl
RnVuY3Rpb25Db25kaXRpb25hbE9wZXJhdGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7
ICJjb25kaXRpb25hbE9wZXJhdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxQcm90b3R5
cGVGdW5jdGlvbl9jb25kaXRpb25hbE9wZXJhdGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwKICNl
bHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgpAQCAtMjAx
LDcgKzIwMSw3IEBAIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RPcGVyYXQKIH0K
IAogI2lmIEVOQUJMRShDb25kaXRpb25CYXNlKQotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBlRnVuY3Rpb25Ob25Db25k
aXRpb25hbE9wZXJhdGlvbkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpT
VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25h
bFByb3RvdHlwZUZ1bmN0aW9uX25vbkNvbmRpdGlvbmFsT3BlcmF0aW9uQm9keShKU0M6OkpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1l
LCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWw+OjpDbGFz
c1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTIxMywxNSArMjEzLDE1IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T3BlcmF0aW9uQ29uZGl0aW9u
YWxQcm90b3R5cGVGdW5jdGlvbk5vbkNvbmRpdGlvbmFsT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFByb3RvdHlwZUZ1bmN0
aW9uX25vbkNvbmRpdGlvbmFsT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsPjo6Y2FsbDxqc1Rlc3RPcGVyYXRpb25Db25k
aXRpb25hbFByb3RvdHlwZUZ1bmN0aW9uTm9uQ29uZGl0aW9uYWxPcGVyYXRpb25Cb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm5vbkNvbmRpdGlvbmFsT3BlcmF0aW9uIik7
CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbD46OmNh
bGw8anNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxQcm90b3R5cGVGdW5jdGlvbl9ub25Db25kaXRp
b25hbE9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibm9u
Q29uZGl0aW9uYWxPcGVyYXRpb24iKTsKIH0KIAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0
aW9uQmFzZSkgJiYgRU5BQkxFKENvbmRpdGlvbk9wZXJhdGlvbikKLXN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFByb3RvdHlwZUZ1bmN0
aW9uQ29uZGl0aW9uYWxPcGVyYXRpb25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJh
dGlvbjxKU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbD46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRo
aXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T3BlcmF0aW9uQ29u
ZGl0aW9uYWxQcm90b3R5cGVGdW5jdGlvbl9jb25kaXRpb25hbE9wZXJhdGlvbkJvZHkoSlNDOjpK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsPjo6
Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0yMzMsOSArMjMzLDkgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPcGVyYXRpb25Db25kaXRp
b25hbFByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxPcGVyYXRpb24sIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBlRnVuY3Rp
b25fY29uZGl0aW9uYWxPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWw+OjpjYWxsPGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlv
bmFsUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY29uZGl0aW9uYWxPcGVyYXRpb24iKTsKKyAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsPjo6Y2FsbDxqc1Rlc3RP
cGVyYXRpb25Db25kaXRpb25hbFByb3RvdHlwZUZ1bmN0aW9uX2NvbmRpdGlvbmFsT3BlcmF0aW9u
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjb25kaXRpb25hbE9wZXJh
dGlvbiIpOwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVq
ZWN0aW9uRXZlbnQuY3BwCShyZXZpc2lvbiAyNjg1NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTI5LDggKzEyOSw4IEBAIHRlbXBsYXRlPD4gVGVzdFByb21pc2VSZWpl
Y3Rpb25FdmVudDo6SW4KIAogSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RQcm9taXNl
UmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rvcik7CiBKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNl
dEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UHJvbWlzZSk7Ci1KU0NfREVD
TEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFJlYXNvbik7CitK
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudF9wcm9t
aXNlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0UHJvbWlzZVJlamVjdGlvbkV2
ZW50X3JlYXNvbik7CiAKIGNsYXNzIEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFByb3RvdHlw
ZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjEw
LDggKzIxMCw4IEBAIHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFByb21pc2UKIHN0
YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRQcm90
b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RQcm9taXNlUmVqZWN0
aW9uRXZlbnRDb25zdHJ1Y3RvcikgfSB9LAotICAgIHsgInByb21pc2UiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0UHJvbWlzZVJlamVjdGlv
bkV2ZW50UHJvbWlzZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0gfSwKLSAgICB7ICJyZWFzb24iLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0
ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UmVhc29uKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAg
IHsgInByb21pc2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50X3Byb21pc2UpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAi
cmVhc29uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFByb21pc2VSZWpl
Y3Rpb25FdmVudF9yZWFzb24pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiB9OwogCiBjb25zdCBDbGFzc0luZm8gSlNUZXN0UHJv
bWlzZVJlamVjdGlvbkV2ZW50UHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0UHJvbWlzZVJlamVj
dGlvbkV2ZW50IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRQcm90b3R5cGUpIH07CkBAIC0yODIs
NyArMjgyLDcgQEAgSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFByb21pcwogICAg
IHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3Ry
dWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFByb21pc2VHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVu
dCYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RQcm9taXNlUmVqZWN0
aW9uRXZlbnRfcHJvbWlzZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50JiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8m
IHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yOTAsMTIgKzI5MCwxMiBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0UHJvbWlzZVJlamVjCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETFByb21pc2U8SURMQW55Pj4obGV4aWNhbEdsb2JhbE9i
amVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwucHJvbWlz
ZSgpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0UHJvbWlzZVJlamVj
dGlvbkV2ZW50UHJvbWlzZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RP
TV9HRVRURVIoanNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50X3Byb21pc2UsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0UHJvbWlzZVJlamVj
dGlvbkV2ZW50Pjo6Z2V0PGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFByb21pc2VHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpSZWplY3RQcm9taXNlPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAicHJvbWlzZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Pjo6Z2V0PGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVu
dF9wcm9taXNlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6UmVqZWN0UHJvbWlzZT4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInByb21pc2UiKTsKIH0KIAotc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFJlYXNvbkdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0UHJvbWlzZVJlamVjdGlv
bkV2ZW50JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFByb21pc2VS
ZWplY3Rpb25FdmVudF9yZWFzb25HZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudCYgdGhpc09iamVjdCkKIHsKICAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzAzLDkgKzMwMyw5IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RQcm9taXNlUmVqZWMKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQW55PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLnJlYXNvbigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIo
anNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UmVhc29uLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRfcmVh
c29uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdFByb21pc2VSZWplY3Rpb25FdmVudD46OmdldDxqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZl
bnRSZWFzb25HZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWFzb24iKTsKKyAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudD46OmdldDxqc1Rlc3RQcm9taXNlUmVqZWN0
aW9uRXZlbnRfcmVhc29uR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVhc29uIik7CiB9CiAKIEpTQzo6SXNv
U3Vic3BhY2UqIEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudDo6c3Vic3BhY2VGb3JJbXBsKEpT
Qzo6Vk0mIHZtKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFJlYWRPbmx5TWFwTGlrZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5TWFwTGlrZS5jcHAJKHJldmlz
aW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RSZWFkT25seU1hcExpa2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCwxOCArNTAsMTgg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25HZXQpOwot
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVG
dW5jdGlvbkhhcyk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5TWFw
TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyk7Ci1KU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFs
dWVzKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlNYXBMaWtlUHJv
dG90eXBlRnVuY3Rpb25Gb3JFYWNoKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25fZ2V0KTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25faGFzKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVu
Y3Rpb25fZW50cmllcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2tleXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl92YWx1ZXMpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlv
bl9mb3JFYWNoKTsKIAogLy8gQXR0cmlidXRlcwogCiBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKTsKIEpTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RSZWFkT25seU1hcExpa2VTaXplKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9HRVRURVIoanNUZXN0UmVhZE9ubHlNYXBMaWtlX3NpemUpOwogCiBjbGFzcyBKU1Rlc3RS
ZWFkT25seU1hcExpa2VQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2Jq
ZWN0IHsKIHB1YmxpYzoKQEAgLTExNywxMyArMTE3LDEzIEBAIHRlbXBsYXRlPD4gY29uc3QgQ2xh
c3NJbmZvIEpTVGVzdFJlYWRPbmwKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RS
ZWFkT25seU1hcExpa2VQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1
Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RS
ZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcikgfSB9LAotICAgIHsgInNpemUiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RSZWFkT25seU1hcExpa2VTaXplKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAotICAgIHsg
ImdldCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RSZWFkT25seU1h
cExpa2VQcm90b3R5cGVGdW5jdGlvbkdldCksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJo
YXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0UmVhZE9ubHlNYXBM
aWtlUHJvdG90eXBlRnVuY3Rpb25IYXMpLCAoaW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAiZW50
cmllcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RSZWFkT25seU1h
cExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAg
eyAia2V5cyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RSZWFkT25s
eU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAg
eyAidmFsdWVzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFJlYWRP
bmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKSwgKGludHB0cl90KSAoMCkgfSB9LAot
ICAgIHsgImZvckVhY2giLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9y
RWFjaCksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7ICJzaXplIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3Nv
ciksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0UmVhZE9ubHlNYXBMaWtlX3NpemUpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiZ2V0
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFJlYWRPbmx5TWFwTGlr
ZVByb3RvdHlwZUZ1bmN0aW9uX2dldCksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7ICJoYXMi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0g
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0UmVhZE9ubHlNYXBMaWtl
UHJvdG90eXBlRnVuY3Rpb25faGFzKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgImVudHJp
ZXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0UmVhZE9ubHlNYXBM
aWtlUHJvdG90eXBlRnVuY3Rpb25fZW50cmllcyksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7
ICJrZXlzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFJlYWRPbmx5
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2tleXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAg
eyAidmFsdWVzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFJlYWRP
bmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX3ZhbHVlcyksIChpbnRwdHJfdCkgKDApIH0gfSwK
KyAgICB7ICJmb3JFYWNoIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJh
d05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl9m
b3JFYWNoKSwgKGludHB0cl90KSAoMSkgfSB9LAogfTsKIAogY29uc3QgQ2xhc3NJbmZvIEpTVGVz
dFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdFJlYWRPbmx5TWFwTGlr
ZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlKSB9OwpAQCAtMjA2LDE5ICsyMDYsMTkgQEAg
SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFJlYWRPbgogICAgIHJldHVybiBwcm90
b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdFJlYWRPbmx5TWFwTGlrZVNpemVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdFJlYWRPbmx5TWFwTGlrZSYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RSZWFkT25seU1hcExpa2Vfc2l6ZUdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0UmVhZE9ubHlNYXBMaWtlJiB0aGlzT2JqZWN0
KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEFueT4obGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgZm9yd2FyZFNpemVUb01hcExpa2UobGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc09iamVjdCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RSZWFk
T25seU1hcExpa2VTaXplLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RSZWFkT25seU1hcExpa2Vfc2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkp
CiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RSZWFkT25seU1hcExpa2U+OjpnZXQ8
anNUZXN0UmVhZE9ubHlNYXBMaWtlU2l6ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgInNpemUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFJlYWRPbmx5
TWFwTGlrZT46OmdldDxqc1Rlc3RSZWFkT25seU1hcExpa2Vfc2l6ZUdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNpemUiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0
Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxG
cmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9ubHlNYXBM
aWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl9nZXRCb2R5
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1l
KiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seU1hcExpa2U+
OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTIzMiwxMiArMjMyLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkR2V0VG9NYXBMaWtlKCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShrZXkpKSkpKTsK
IH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3Rv
dHlwZUZ1bmN0aW9uR2V0LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFk
T25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl9nZXQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0UmVhZE9ubHlNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RSZWFkT25seU1hcExp
a2VQcm90b3R5cGVGdW5jdGlvbkdldEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAiZ2V0Iik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seU1hcExp
a2U+OjpjYWxsPGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2dldEJvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZ2V0Iik7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVG
dW5jdGlvbkhhc0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdFJl
YWRPbmx5TWFwTGlrZT46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rp
b25faGFzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6
OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9u
bHlNYXBMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNTEsMTIgKzI1MSwxMiBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEhhc1RvTWFwTGlr
ZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUo
a2V5KSkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seU1h
cExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25faGFzLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFJlYWRPbmx5TWFwTGlrZT46OmNhbGw8anNUZXN0UmVh
ZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgImhhcyIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0UmVh
ZE9ubHlNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlv
bl9oYXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImhhcyIpOwogfQog
Ci1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlNYXBMaWtl
UHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVy
YXRpb248SlNUZXN0UmVhZE9ubHlNYXBMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykK
K3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25seU1hcExpa2VQ
cm90b3R5cGVGdW5jdGlvbl9lbnRyaWVzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVy
YXRpb248SlNUZXN0UmVhZE9ubHlNYXBMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykK
IHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNjUsMTIgKzI2
NSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4o
Zm9yd2FyZEVudHJpZXNUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICpjYXN0ZWRUaGlzKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJl
YWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcywgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25fZW50cmll
cywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seU1hcExpa2U+
OjpjYWxsPGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllc0JvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW50cmllcyIpOworICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9ubHlNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RSZWFkT25s
eU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl9lbnRyaWVzQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJlbnRyaWVzIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbktleXNCb2R5
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1l
KiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seU1hcExpa2U+
OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2tleXNCb2R5KEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBj
YWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seU1hcExpa2U+OjpD
bGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTI3OSwxMiArMjc5LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkS2V5c1RvTWFwTGlrZSgqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1KU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlz
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90
b3R5cGVGdW5jdGlvbl9rZXlzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dFJlYWRPbmx5TWFwTGlrZT46OmNhbGw8anNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVu
Y3Rpb25LZXlzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJrZXlzIik7
CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seU1hcExpa2U+OjpjYWxsPGpz
VGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2tleXNCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImtleXMiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFs
dWVzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNh
bGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9ubHlN
YXBMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl92YWx1
ZXNCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seU1h
cExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI5MywxMiArMjkzLDEyIEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkVmFsdWVzVG9NYXBMaWtl
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAK
LUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVG
dW5jdGlvblZhbHVlcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9u
bHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25fdmFsdWVzLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdFJlYWRPbmx5TWFwTGlrZT46OmNhbGw8anNUZXN0UmVhZE9ubHlNYXBM
aWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgInZhbHVlcyIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9u
bHlNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbl92
YWx1ZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZhbHVlcyIpOwog
fQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlNYXBM
aWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExP
cGVyYXRpb248SlNUZXN0UmVhZE9ubHlNYXBMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhp
cykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25seU1hcExp
a2VQcm90b3R5cGVGdW5jdGlvbl9mb3JFYWNoQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExP
cGVyYXRpb248SlNUZXN0UmVhZE9ubHlNYXBMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhp
cykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMTIsOSAr
MzEyLDkgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+
KGZvcndhcmRGb3JFYWNoVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAqY2FzdGVkVGhpcywgV1RGTW92ZShjYWxsYmFjaykpKSkpOwogfQogCi1KU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNo
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90
b3R5cGVGdW5jdGlvbl9mb3JFYWNoLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdFJlYWRPbmx5TWFwTGlrZT46OmNhbGw8anNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBl
RnVuY3Rpb25Gb3JFYWNoQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJm
b3JFYWNoIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seU1hcExpa2U+
OjpjYWxsPGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uX2ZvckVhY2hCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZvckVhY2giKTsKIH0KIAogSlND
OjpJc29TdWJzcGFjZSogSlNUZXN0UmVhZE9ubHlNYXBMaWtlOjpzdWJzcGFjZUZvckltcGwoSlND
OjpWTSYgdm0pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0UmVhZE9ubHlTZXRMaWtlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVhZE9ubHlTZXRMaWtlLmNwcAkocmV2aXNp
b24gMjY4NTQ3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFJlYWRPbmx5U2V0TGlrZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDE3ICs1MCwxNyBA
QCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyk7Ci1K
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1
bmN0aW9uRW50cmllcyk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKTsKLUpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25G
b3JFYWNoKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlTZXRMaWtl
UHJvdG90eXBlRnVuY3Rpb25faGFzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25fZW50cmllcyk7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uX2tleXMp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5
cGVGdW5jdGlvbl92YWx1ZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFk
T25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbl9mb3JFYWNoKTsKIAogLy8gQXR0cmlidXRlcwog
CiBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVj
dG9yKTsKIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0UmVhZE9ubHlTZXRMaWtl
Q29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RSZWFkT25seVNl
dExpa2VTaXplKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0UmVhZE9ubHlTZXRM
aWtlX3NpemUpOwogCiBjbGFzcyBKU1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGUgZmluYWwg
OiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTExNiwxMiArMTE2
LDEyIEBAIHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFJlYWRPbmwKIHN0YXRpYyBj
b25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVUYWJsZVZh
bHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0UmVhZE9ubHlT
ZXRMaWtlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvcikgfSB9
LAotICAgIHsgInNpemUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RSZWFkT25s
eVNldExpa2VTaXplKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oMCkgfSB9LAotICAgIHsgImhhcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyksIChp
bnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJlbnRyaWVzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmll
cyksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJrZXlzIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5
cyksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJ2YWx1ZXMiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxS
YXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25W
YWx1ZXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAiZm9yRWFjaCIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5j
dGlvbkZvckVhY2gpLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAic2l6ZSIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9t
QWNjZXNzb3IpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFJlYWRPbmx5U2V0TGlrZV9zaXplKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAg
IHsgImhhcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RSZWFkT25s
eVNldExpa2VQcm90b3R5cGVGdW5jdGlvbl9oYXMpLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAg
eyAiZW50cmllcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RSZWFk
T25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbl9lbnRyaWVzKSwgKGludHB0cl90KSAoMCkgfSB9
LAorICAgIHsgImtleXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0
UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25fa2V5cyksIChpbnRwdHJfdCkgKDApIH0g
fSwKKyAgICB7ICJ2YWx1ZXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25fdmFsdWVzKSwgKGludHB0cl90KSAo
MCkgfSB9LAorICAgIHsgImZvckVhY2giLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlv
biksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlv
bj4oanNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25fZm9yRWFjaCksIChpbnRw
dHJfdCkgKDEpIH0gfSwKIH07CiAKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RSZWFkT25seVNldExp
a2VQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RSZWFkT25seVNldExpa2UiLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFJlYWRPbmx5
U2V0TGlrZVByb3RvdHlwZSkgfTsKQEAgLTIwNCwxOSArMjA0LDE5IEBAIEpTQ19ERUZJTkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1Rlc3RSZWFkT24KICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZFZhbHVlKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RSZWFkT25seVNl
dExpa2VTaXplR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rl
c3RSZWFkT25seVNldExpa2UmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0UmVhZE9ubHlTZXRMaWtlX3NpemVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdFJlYWRPbmx5U2V0TGlrZSYgdGhpc09iamVjdCkKIHsKICAgICBhdXRv
JiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExBbnk+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGZvcndhcmRTaXplVG9TZXRMaWtlKGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3QpKSkp
OwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0UmVhZE9ubHlTZXRMaWtlU2l6
ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0
UmVhZE9ubHlTZXRMaWtlX3NpemUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0UmVhZE9ubHlTZXRMaWtlPjo6Z2V0PGpzVGVzdFJlYWRPbmx5
U2V0TGlrZVNpemVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzaXpl
Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RSZWFkT25seVNldExpa2U+OjpnZXQ8
anNUZXN0UmVhZE9ubHlTZXRMaWtlX3NpemVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJzaXplIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkhhc0JvZHkoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdFJlYWRPbmx5U2V0TGlrZT46OkNsYXNzUGFy
YW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25faGFzQm9keShKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0
eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9ubHlTZXRMaWtlPjo6Q2xhc3NQYXJhbWV0
ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yMzAsMTIgKzIzMCwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29k
ZSh0b0pTPElETEFueT4oZm9yd2FyZEhhc1RvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkhh
cywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25faGFzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dFJlYWRPbmx5U2V0TGlrZT46OmNhbGw8anNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVu
Y3Rpb25IYXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImhhcyIpOwor
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9ubHlTZXRMaWtlPjo6Y2FsbDxqc1Rl
c3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbl9oYXNCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgImhhcyIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVz
Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxG
cmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9ubHlTZXRM
aWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbl9lbnRyaWVz
Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxG
cmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9ubHlTZXRM
aWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNDQsMTIgKzI0NCwxMiBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEVudHJpZXNUb1NldExpa2Uo
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsKIH0KIAot
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1
bmN0aW9uRW50cmllcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9u
bHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25fZW50cmllcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seVNldExpa2U+OjpjYWxsPGpzVGVzdFJlYWRPbmx5U2V0
TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAiZW50cmllcyIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0UmVh
ZE9ubHlTZXRMaWtlPjo6Y2FsbDxqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlv
bl9lbnRyaWVzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbnRyaWVz
Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25s
eVNldExpa2VQcm90b3R5cGVGdW5jdGlvbktleXNCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElE
TE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seVNldExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRU
aGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5U2V0
TGlrZVByb3RvdHlwZUZ1bmN0aW9uX2tleXNCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9w
ZXJhdGlvbjxKU1Rlc3RSZWFkT25seVNldExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlz
KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI1OCwxMiAr
MjU4LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55
Pihmb3J3YXJkS2V5c1RvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
KmNhc3RlZFRoaXMpKSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVh
ZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbl9rZXlzLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFJlYWRPbmx5U2V0TGlrZT46OmNhbGw8
anNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJrZXlzIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RSZWFkT25seVNldExpa2U+OjpjYWxsPGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3Rv
dHlwZUZ1bmN0aW9uX2tleXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
ImtleXMiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFJl
YWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQm9keShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBl
bmFtZSBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9ubHlTZXRMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIg
Y2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFk
T25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbl92YWx1ZXNCb2R5KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVu
YW1lIElETE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seVNldExpa2U+OjpDbGFzc1BhcmFtZXRlciBj
YXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTI3MiwxMiArMjcyLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRv
SlM8SURMQW55Pihmb3J3YXJkVmFsdWVzVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcywgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rp
b25fdmFsdWVzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFJlYWRPbmx5
U2V0TGlrZT46OmNhbGw8anNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1
ZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZhbHVlcyIpOworICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9ubHlTZXRMaWtlPjo6Y2FsbDxqc1Rlc3RS
ZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbl92YWx1ZXNCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgInZhbHVlcyIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JF
YWNoQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNh
bGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9ubHlT
ZXRMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbl9mb3JF
YWNoQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNh
bGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9ubHlT
ZXRMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yOTEsOSArMjkxLDkgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRGb3JFYWNoVG9TZXRMaWtl
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShj
YWxsYmFjaykpKSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9u
bHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbl9mb3JFYWNoLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFJlYWRPbmx5U2V0TGlrZT46OmNh
bGw8anNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJmb3JFYWNoIik7CisgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seVNldExpa2U+OjpjYWxsPGpzVGVzdFJlYWRPbmx5U2V0
TGlrZVByb3RvdHlwZUZ1bmN0aW9uX2ZvckVhY2hCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgImZvckVhY2giKTsKIH0KIAogSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0UmVh
ZE9ubHlTZXRMaWtlOjpzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0pCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAko
cmV2aXNpb24gMjY4NTQ3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTU2LDIwICs1NiwyMCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlv
bnMKIAotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW9uKTsKLUpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25GdW5jdGlvblJldHVybmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uX2Z1bmN0aW9u
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25fZnVuY3Rpb25SZXR1cm5pbmcpOwogCiAvLyBBdHRy
aWJ1dGVzCiAKIEpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IpOwogSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcik7Ci1KU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZVZhbHVlKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VSZWFkb25seVZhbHVlKTsKLUpTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2Fj
aGVkVmFsdWUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBvcnRzKTsKLUpTQ19ERUNM
QVJFX0NVU1RPTV9HRVRURVIoanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2Fj
aGVkUmVhZG9ubHlWYWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZV92YWx1ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZV92YWx1ZSk7CitKU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZV9yZWFkb25seVZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlX2NhY2hlZFZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlX2NhY2hlZFZh
bHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlX3BvcnRzKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlX2NhY2hlZFJlYWRvbmx5VmFsdWUpOwogCiBjbGFz
cyBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGUgZmluYWwgOiBw
dWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTEyNSwxMyArMTI1LDEz
IEBAIHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFNlcmlhbGkKIHN0YXRpYyBjb25z
dCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90
b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcikgfSB9LAotICAgIHsgInZhbHVl
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1ZSksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlKSB9IH0sCi0gICAgeyAicmVhZG9ubHlWYWx1ZSIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VSZWFkb25seVZhbHVlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAotICAgIHsgImNhY2hlZFZhbHVlIiwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29y
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZSksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlKSB9IH0sCi0gICAgeyAicG9ydHMiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlUG9ydHMpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPigwKSB9IH0sCi0gICAgeyAiY2FjaGVkUmVhZG9ubHlWYWx1ZSIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VDYWNoZWRSZWFkb25seVZhbHVlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAotICAgIHsgImZ1bmN0aW9uIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW9uKSwg
KGludHB0cl90KSAoMSkgfSB9LAotICAgIHsgImZ1bmN0aW9uUmV0dXJuaW5nIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW9uUmV0dXJu
aW5nKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgInZhbHVlIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VfdmFsdWUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VfdmFsdWUpIH0gfSwKKyAgICB7ICJyZWFkb25seVZhbHVlIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRy
aWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90
OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZV9yZWFk
b25seVZhbHVlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oMCkgfSB9LAorICAgIHsgImNhY2hlZFZhbHVlIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VfY2FjaGVkVmFsdWUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFBy
b3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VfY2FjaGVkVmFsdWUpIH0gfSwKKyAgICB7ICJwb3J0cyIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0
cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VfcG9y
dHMpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PigwKSB9IH0sCisgICAgeyAiY2FjaGVkUmVhZG9ubHlWYWx1ZSIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmli
dXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VfY2FjaGVk
UmVhZG9ubHlWYWx1ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0gfSwKKyAgICB7ICJmdW5jdGlvbiIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25fZnVuY3Rpb24pLCAoaW50cHRyX3Qp
ICgxKSB9IH0sCisgICAgeyAiZnVuY3Rpb25SZXR1cm5pbmciLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uX2Z1bmN0aW9uUmV0dXJuaW5nKSwgKGlu
dHB0cl90KSAoMCkgfSB9LAogfTsKIAogY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJv
dG90eXBlKSB9OwpAQCAtMjEzLDcgKzIxMyw3IEBAIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RTZXJpYWwKICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZtLnBy
b3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7
CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VWYWx1ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlJiB0aGlzT2JqZWN0KQorc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZV92YWx1
ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0g
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMjEsMTIgKzIyMSwxMiBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwg
dGhyb3dTY29wZSwgaW1wbC52YWx1ZSgpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZV92YWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+Ojpn
ZXQ8anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWVHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJ2YWx1ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlPjo6Z2V0PGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZV92YWx1ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInZhbHVlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1ZVNldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZV92YWx1ZVNldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1
dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMzksMTIgKzIzOSwxMiBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0U2VyaWFsaXplZFNjCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlX3ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsK
LSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZT46OnNldDxzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1ZVNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidmFs
dWUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZT46OnNldDxzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Vf
dmFsdWVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgInZhbHVlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VSZWFkb25seVZhbHVlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Um
IHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlX3JlYWRvbmx5VmFsdWVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSYgdGhp
c09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MjUyLDEyICsyNTIsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRT
YwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExTZXJpYWxpemVk
U2NyaXB0VmFsdWU8U2VyaWFsaXplZFNjcmlwdFZhbHVlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwg
KnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwucmVhZG9ubHlWYWx1
ZSgpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlUmVhZG9ubHlWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlX3JlYWRvbmx5VmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6Z2V0PGpz
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVJlYWRvbmx5VmFsdWVHZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJyZWFkb25seVZhbHVlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+OjpnZXQ8anNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlX3JlYWRvbmx5VmFsdWVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWFkb25seVZh
bHVlIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlJiB0aGlzT2Jq
ZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZV9jYWNoZWRWYWx1ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlJiB0aGlzT2JqZWN0KQog
ewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNzAsMTIgKzI3
MCwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjCiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VfY2FjaGVkVmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6Z2V0PGpz
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiY2FjaGVkVmFsdWUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT46OmdldDxqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VfY2FjaGVkVmFsdWVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjYWNoZWRWYWx1ZSIpOwog
fQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlQ2FjaGVkVmFsdWVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSYgdGhpc09iamVjdCwgSlNW
YWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VfY2FjaGVkVmFsdWVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSYgdGhpc09i
amVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMjg4LDEyICsyODgsMTIgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dFNlcmlhbGl6ZWRTYwogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01f
U0VUVEVSKHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZV9jYWNoZWRWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+OjpzZXQ8c2V0
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWVTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNhY2hlZFZhbHVl
Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2U+OjpzZXQ8c2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlX2Nh
Y2hlZFZhbHVlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJjYWNoZWRWYWx1ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUG9ydHNHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZSYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VfcG9ydHNHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSYgdGhpc09iamVj
dCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzAxLDEy
ICszMDEsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTYwogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExTZXF1ZW5jZTxJRExJbnRl
cmZhY2U8TWVzc2FnZVBvcnQ+Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xv
YmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwucG9ydHMoKSkpKTsKIH0KIAotSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBvcnRz
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VfcG9ydHMsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBvcnRz
R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAicG9ydHMiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT46OmdldDxqc1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VfcG9ydHNHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJwb3J0cyIpOwogfQogCi1z
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
Q2FjaGVkUmVhZG9ubHlWYWx1ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlJiB0aGlzT2JqZWN0KQor
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZV9jYWNoZWRSZWFkb25seVZhbHVlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UmIHRoaXNPYmplY3Qp
CiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMxOSwxMiAr
MzE5LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2MKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkUmVhZG9ubHlWYWx1ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlX2NhY2hlZFJlYWRvbmx5VmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hl
ZFJlYWRvbmx5VmFsdWVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjYWNoZWRSZWFkb25seVZhbHVlIik7Cisg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2U+OjpnZXQ8anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlX2NhY2hlZFJlYWRv
bmx5VmFsdWVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjYWNoZWRSZWFkb25seVZhbHVlIik7CiB9CiAKLXN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW9uQm9keShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBl
bmFtZSBJRExPcGVyYXRpb248SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6
Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlv
bl9mdW5jdGlvbkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMp
CiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzQxLDEyICsz
NDEsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGVG
dW5jdGlvbkZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbl9mdW5jdGlvbiwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2U+OjpjYWxsPGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3Rv
dHlwZUZ1bmN0aW9uRnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImZ1bmN0aW9uIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uX2Z1bmN0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJmdW5jdGlvbiIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBl
RnVuY3Rpb25GdW5jdGlvblJldHVybmluZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3Bl
cmF0aW9uPEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT46OkNsYXNzUGFyYW1l
dGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25fZnVuY3Rpb25S
ZXR1cm5pbmdCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
Qzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQog
ewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM1Niw5ICszNTYs
OSBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTxTZXJpYWxpemVkU2NyaXB0VmFsdWU+PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBpbXBsLmZ1bmN0aW9uUmV0dXJuaW5nKCkp
KSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW9uUmV0dXJuaW5nLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2VQcm90b3R5cGVGdW5jdGlvbl9mdW5jdGlvblJldHVybmluZywgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+OjpjYWxs
PGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRnVu
Y3Rpb25SZXR1cm5pbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZ1
bmN0aW9uUmV0dXJuaW5nIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uX2Z1bmN0aW9uUmV0dXJuaW5nQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJmdW5jdGlvblJldHVybmluZyIpOwogfQogCiBK
U0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OnN1
YnNwYWNlRm9ySW1wbChKU0M6OlZNJiB2bSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRMaWtlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2V0TGlrZS5jcHAJKHJldmlz
aW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTZXRMaWtlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsMjAgKzUwLDIwIEBAIHVzaW5n
IG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyk7Ci1KU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOwotSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTsK
LUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9u
VmFsdWVzKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVByb3RvdHlw
ZUZ1bmN0aW9uRm9yRWFjaCk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExp
a2VQcm90b3R5cGVGdW5jdGlvbkFkZCk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uX2hhcyk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbl9lbnRyaWVz
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uX2tleXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlUHJvdG90
eXBlRnVuY3Rpb25fdmFsdWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0
TGlrZVByb3RvdHlwZUZ1bmN0aW9uX2ZvckVhY2gpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25fYWRkKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uX2NsZWFyKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uX2RlbGV0ZSk7
CiAKIC8vIEF0dHJpYnV0ZXMKIAogSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RTZXRM
aWtlQ29uc3RydWN0b3IpOwogSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RTZXRM
aWtlQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RTZXRMaWtl
U2l6ZSk7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFNldExpa2Vfc2l6ZSk7CiAK
IGNsYXNzIEpTVGVzdFNldExpa2VQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZp
bmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTExOSwxNSArMTE5LDE1IEBAIHRlbXBsYXRlPD4gY29u
c3QgQ2xhc3NJbmZvIEpTVGVzdFNldExpa2UKIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBK
U1Rlc3RTZXRMaWtlUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7CiAgICAgeyAiY29uc3RydWN0
b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdFNldExpa2VDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFNldExpa2VDb25z
dHJ1Y3RvcikgfSB9LAotICAgIHsgInNpemUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFk
T25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RTZXRMaWtlU2l6ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKLSAgICB7ICJoYXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdO
YXRpdmVGdW5jdGlvbj4oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKSwgKGludHB0
cl90KSAoMSkgfSB9LAotICAgIHsgImVudHJpZXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpG
dW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVG
dW5jdGlvbj4oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyksIChpbnRwdHJf
dCkgKDApIH0gfSwKLSAgICB7ICJrZXlzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rp
b24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rp
b24+KGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMpLCAoaW50cHRyX3QpICgwKSB9
IH0sCi0gICAgeyAidmFsdWVzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpz
VGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyksIChpbnRwdHJfdCkgKDApIH0gfSwK
LSAgICB7ICJmb3JFYWNoIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpLCAoaW50cHRyX3QpICgxKSB9IH0sCi0g
ICAgeyAiYWRkIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFNldExp
a2VQcm90b3R5cGVGdW5jdGlvbkFkZCksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJjbGVh
ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RTZXRMaWtlUHJvdG90
eXBlRnVuY3Rpb25DbGVhciksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJkZWxldGUiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1
bmN0aW9uRGVsZXRlKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgInNpemUiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3Rv
bUFjY2Vzc29yKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5
U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RTZXRMaWtlX3NpemUpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiaGFz
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFNldExpa2VQcm90b3R5
cGVGdW5jdGlvbl9oYXMpLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAiZW50cmllcyIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVu
Y3Rpb25fZW50cmllcyksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJrZXlzIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlv
bl9rZXlzKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgInZhbHVlcyIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25fdmFs
dWVzKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgImZvckVhY2giLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uX2ZvckVh
Y2gpLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAiYWRkIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbl9hZGQpLCAoaW50
cHRyX3QpICgxKSB9IH0sCisgICAgeyAiY2xlYXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpG
dW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVG
dW5jdGlvbj4oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uX2NsZWFyKSwgKGludHB0cl90
KSAoMCkgfSB9LAorICAgIHsgImRlbGV0ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0
aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25fZGVsZXRlKSwgKGludHB0cl90KSAo
MSkgfSB9LAogfTsKIAogY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFNldExpa2VQcm90b3R5cGU6OnNf
aW5mbyA9IHsgIlRlc3RTZXRMaWtlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RTZXRMaWtlUHJvdG90eXBlKSB9OwpAQCAtMjEwLDE5
ICsyMTAsMTkgQEAgSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFNldExpawogICAg
IHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3Ry
dWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdFNldExpa2VTaXplR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1Rlc3RTZXRMaWtlJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdFNldExpa2Vfc2l6ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0U2V0TGlrZSYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9
IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExBbnk+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGZvcndh
cmRTaXplVG9TZXRMaWtlKGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3QpKSkpOwogfQog
Ci1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0U2V0TGlrZVNpemUsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdFNldExpa2Vfc2l6ZSwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RT
ZXRMaWtlPjo6Z2V0PGpzVGVzdFNldExpa2VTaXplR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAic2l6ZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2V0
TGlrZT46OmdldDxqc1Rlc3RTZXRMaWtlX3NpemVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJzaXplIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXNCb2R5KEpTQzo6SlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5
cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVk
VGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25faGFzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248
SlNUZXN0U2V0TGlrZT46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjM2LDEyICsyMzYsMTIgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRIYXNUb1Nl
dExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZN
b3ZlKGtleSkpKSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlr
ZVByb3RvdHlwZUZ1bmN0aW9uSGFzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25faGFzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdFNldExpa2U+OjpjYWxsPGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlv
bkhhc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaGFzIik7CisgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlPjo6Y2FsbDxqc1Rlc3RTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25faGFzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJoYXMiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNl
dExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElE
TE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVu
Y3Rpb25fZW50cmllc0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVz
dFNldExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI1MCwxMiArMjUwLDEyIEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRW50cmllc1RvU2V0
TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwog
fQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uRW50cmllcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVBy
b3RvdHlwZUZ1bmN0aW9uX2VudHJpZXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0U2V0TGlrZT46OmNhbGw8anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmll
c0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW50cmllcyIpOworICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZT46OmNhbGw8anNUZXN0U2V0TGlrZVBy
b3RvdHlwZUZ1bmN0aW9uX2VudHJpZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgImVudHJpZXMiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbktleXNCb2R5KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVu
YW1lIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhp
cykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlUHJvdG90
eXBlRnVuY3Rpb25fa2V5c0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpT
VGVzdFNldExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI2NCwxMiArMjY0LDEyIEBAIHN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkS2V5c1RvU2V0
TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwog
fQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uS2V5cywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVByb3Rv
dHlwZUZ1bmN0aW9uX2tleXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
U2V0TGlrZT46OmNhbGw8anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0JvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAia2V5cyIpOworICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0U2V0TGlrZT46OmNhbGw8anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uX2tleXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImtleXMiKTsK
IH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VQcm90
b3R5cGVGdW5jdGlvblZhbHVlc0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9u
PEpTVGVzdFNldExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbl92YWx1
ZXNCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlPjo6
Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0yNzgsMTIgKzI3OCwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpT
VmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZFZhbHVlc1RvU2V0TGlrZSgqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1KU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rp
b25fdmFsdWVzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2U+
OjpjYWxsPGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlc0JvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7CisgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RTZXRMaWtlPjo6Y2FsbDxqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25f
dmFsdWVzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ2YWx1ZXMiKTsK
IH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2hCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlv
bjxKU1Rlc3RTZXRMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25fZm9y
RWFjaEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2U+
OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTI5NywxMiArMjk3LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRm9yRWFjaFRvU2V0TGlrZSgqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoY2FsbGJh
Y2spKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2gsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dFNldExpa2VQcm90b3R5cGVGdW5jdGlvbl9mb3JFYWNoLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdFNldExpa2U+OjpjYWxsPGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5j
dGlvbkZvckVhY2hCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZvckVh
Y2giKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2U+OjpjYWxsPGpzVGVz
dFNldExpa2VQcm90b3R5cGVGdW5jdGlvbl9mb3JFYWNoQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJmb3JFYWNoIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25BZGRCb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIg
Y2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRM
aWtlUHJvdG90eXBlRnVuY3Rpb25fYWRkQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVy
YXRpb248SlNUZXN0U2V0TGlrZT46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzE2LDEyICszMTYsMTIgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRB
ZGRUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlz
LCBXVEZNb3ZlKGtleSkpKSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQWRkLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25fYWRkLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2U+OjpjYWxsPGpzVGVzdFNldExpa2VQcm90b3R5cGVG
dW5jdGlvbkFkZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiYWRkIik7
CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlPjo6Y2FsbDxqc1Rlc3RTZXRM
aWtlUHJvdG90eXBlRnVuY3Rpb25fYWRkQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJhZGQiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFt
ZSBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZT46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMp
CitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVByb3RvdHlw
ZUZ1bmN0aW9uX2NsZWFyQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNU
ZXN0U2V0TGlrZT46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzMyLDEyICszMzIsMTIgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RT
ZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uX2NsZWFyLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2U+OjpjYWxsPGpzVGVzdFNldExpa2VQcm90b3R5
cGVGdW5jdGlvbkNsZWFyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJj
bGVhciIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZT46OmNhbGw8anNU
ZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uX2NsZWFyQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJjbGVhciIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlQm9keShKU0M6OkpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZy
YW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZT46OkNsYXNzUGFyYW1ldGVy
IGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0
TGlrZVByb3RvdHlwZUZ1bmN0aW9uX2RlbGV0ZUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURM
T3BlcmF0aW9uPEpTVGVzdFNldExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewog
ICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM1MSw5ICszNTEsOSBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2Fy
ZERlbGV0ZVRvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3Rl
ZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25EZWxldGUsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbl9kZWxldGUsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewot
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZT46OmNhbGw8anNUZXN0U2V0TGlr
ZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJkZWxldGUiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2U+
OjpjYWxsPGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbl9kZWxldGVCb2R5PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImRlbGV0ZSIpOwogfQogCiBKU0M6Oklzb1N1YnNw
YWNlKiBKU1Rlc3RTZXRMaWtlOjpzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0pCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2V0TGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnMuY3BwCShyZXZpc2lvbiAyNjg1NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTUxLDIxICs1MSwyMSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAv
LyBGdW5jdGlvbnMKIAotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25EZWxldGUpOwotSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJv
dG90eXBlRnVuY3Rpb25IYXMpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKTsKLUpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc1Byb3RvdHlwZUZ1bmN0aW9uS2V5cyk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvblZhbHVl
cyk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOwotSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVu
Y3Rpb25DbGVhcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9kZWxldGUpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJv
dG90eXBlRnVuY3Rpb25faGFzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uX2VudHJpZXMpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zUHJvdG90eXBlRnVuY3Rpb25fa2V5cyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbl92
YWx1ZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fZm9yRWFjaCk7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5
cGVGdW5jdGlvbl9jbGVhcik7CiAKIC8vIEF0dHJpYnV0ZXMKIAogSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3Ip
OwogSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQWRkKTsKLUpTQ19ERUNMQVJFX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0FkZCk7Ci1K
U0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNTaXplKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0U2V0TGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc19hZGQpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zX2FkZCk7CitKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNfc2l6ZSk7
CiAKIGNsYXNzIEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGUg
ZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTEyMSwx
NSArMTIxLDE1IEBAIHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFNldExpa2UKIHN0
YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7CiAgICAgeyAiY29uc3RydWN0b3IiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rvciks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcikgfSB9LAot
ICAgIHsgImFkZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0FkZCksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVz
dFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNBZGQpIH0gfSwKLSAgICB7ICJzaXplIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpDdXN0b21BY2Nlc3NvciksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc1NpemUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPigwKSB9IH0sCi0gICAgeyAiZGVsZXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25EZWxldGUpLCAoaW50cHRyX3QpICgwKSB9
IH0sCi0gICAgeyAiaGFzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkhhcyksIChp
bnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJlbnRyaWVzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5
cGVGdW5jdGlvbkVudHJpZXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAia2V5cyIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25LZXlzKSwgKGludHB0cl90KSAoMCkgfSB9LAot
ICAgIHsgInZhbHVlcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RT
ZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpLCAo
aW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAiZm9yRWFjaCIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90
eXBlRnVuY3Rpb25Gb3JFYWNoKSwgKGludHB0cl90KSAoMSkgfSB9LAotICAgIHsgImNsZWFyIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFNldExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkNsZWFyKSwgKGludHB0cl90KSAoMCkgfSB9
LAorICAgIHsgImFkZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0
ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc19hZGQpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRK
U1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zX2FkZCkgfSB9LAorICAgIHsgInNp
emUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zX3NpemUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xv
dDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisgICAgeyAiZGVsZXRlIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RTZXRMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fZGVsZXRlKSwgKGludHB0cl90
KSAoMCkgfSB9LAorICAgIHsgImhhcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25f
aGFzKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgImVudHJpZXMiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c1Byb3RvdHlwZUZ1bmN0aW9uX2VudHJpZXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAi
a2V5cyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RTZXRMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fa2V5cyksIChpbnRwdHJfdCkg
KDApIH0gfSwKKyAgICB7ICJ2YWx1ZXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlv
biksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlv
bj4oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9u
X3ZhbHVlcyksIChpbnRwdHJfdCkgKDApIH0gfSwKKyAgICB7ICJmb3JFYWNoIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNQcm90b3R5cGVGdW5jdGlvbl9mb3JFYWNoKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAg
IHsgImNsZWFyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFNldExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9jbGVhciksIChpbnRw
dHJfdCkgKDApIH0gfSwKIH07CiAKIGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RTZXRMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0U2V0TGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9ucyIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1By
b3RvdHlwZSkgfTsKQEAgLTIxMiw3ICsyMTIsNyBAQCBKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0U2V0TGlrCiAgICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkp
OwogfQogCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc0FkZEdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyYgdGhpc09iamVjdCkKK3N0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zX2Fk
ZEdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0U2V0TGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9
IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjIwLDEyICsyMjAsMTIgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdFNldExpa2VXaXRoTwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLmFkZCgpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0U2V0
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0FkZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc19hZGQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmdldDxqc1Rlc3RTZXRM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQWRkR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYWRkIik7Cisg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zPjo6Z2V0PGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNfYWRkR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiYWRkIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RTZXRM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQWRkU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zJiB0
aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdFNl
dExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNfYWRkU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0yMzgsMjQgKzIzOCwyNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0U2V0TGlrZVdpdGhPCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUpTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQWRk
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zX2FkZCwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6c2V0PHNldEpTVGVz
dFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNBZGRTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImFkZCIpOworICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OnNldDxzZXRK
U1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zX2FkZFNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYWRkIik7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6
ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0U2V0TGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zX3NpemVHZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdFNldExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnMmIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMQW55PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBmb3J3YXJkU2l6ZVRvU2V0
TGlrZShsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0KSkpKTsKIH0KIAotSlNDX0RFRklO
RV9DVVNUT01fR0VUVEVSKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTaXpl
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RT
ZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zX3NpemUsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
KQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9ucz46OmdldDxqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6
ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNpemUiKTsKKyAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+
OjpnZXQ8anNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc19zaXplR2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2l6ZSIpOwogfQogCi1zdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRGVsZXRlQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExP
cGVyYXRpb248SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OkNsYXNzUGFy
YW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uX2RlbGV0
ZUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAg
IGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI2NywxMiArMjY3LDEyIEBA
IHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9u
RGVsZXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fZGVsZXRlLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+
OjpjYWxsPGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5j
dGlvbkRlbGV0ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZGVsZXRl
Iik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zPjo6Y2FsbDxqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJv
dG90eXBlRnVuY3Rpb25fZGVsZXRlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJkZWxldGUiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkhhc0Jv
ZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnM+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNQcm90b3R5cGVGdW5jdGlvbl9oYXNCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9w
ZXJhdGlvbjxKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Q2xhc3NQYXJh
bWV0ZXIgY2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0yODYsMTIgKzI4NiwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVu
Y29kZSh0b0pTPElETEFueT4oZm9yd2FyZEhhc1RvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
UHJvdG90eXBlRnVuY3Rpb25IYXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9oYXMsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9ucz46OmNhbGw8anNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1By
b3RvdHlwZUZ1bmN0aW9uSGFzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJoYXMiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnM+OjpjYWxsPGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNQcm90b3R5cGVGdW5jdGlvbl9oYXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgImhhcyIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRW50cmll
c0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9lbnRyaWVzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFt
ZSBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OkNs
YXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMzAwLDEyICszMDAsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1Zh
bHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRFbnRyaWVzVG9TZXRMaWtlKCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJv
dG90eXBlRnVuY3Rpb25FbnRyaWVzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fZW50cmll
cywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zPjo6Y2FsbDxqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJlbnRyaWVzIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2FsbDxqc1Rlc3RTZXRMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fZW50cmllc0JvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW50cmllcyIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1By
b3RvdHlwZUZ1bmN0aW9uS2V5c0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9u
PEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpDbGFzc1BhcmFtZXRlciBj
YXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9rZXlzQm9keShKU0M6
OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2Fs
bEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9ucz46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzE0LDEyICszMTQsMTIgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRLZXlzVG9TZXRM
aWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9
CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25LZXlzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rp
b25fa2V5cywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2FsbDxqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25LZXlzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJrZXlzIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2FsbDxqc1Rlc3RTZXRMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25fa2V5c0JvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAia2V5cyIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZUZ1bmN0aW9uVmFsdWVzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNU
ZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OkNsYXNzUGFyYW1ldGVyIGNhc3Rl
ZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uX3ZhbHVlc0JvZHkoSlNDOjpK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnM+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMyOCwxMiArMzI4LDEyIEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkVmFsdWVzVG9TZXRM
aWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9
CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5j
dGlvbl92YWx1ZXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmNhbGw8anNUZXN0U2V0TGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJ2YWx1ZXMiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpjYWxsPGpzVGVzdFNldExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbl92YWx1ZXNCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZhbHVlcyIpOwogfQogCi1zdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURM
T3BlcmF0aW9uPEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpDbGFzc1Bh
cmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9mb3JF
YWNoQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNh
bGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAg
ICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzQ3LDEyICszNDcsMTIg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndh
cmRGb3JFYWNoVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2Fz
dGVkVGhpcywgV1RGTW92ZShjYWxsYmFjaykpKSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0
aW9uRm9yRWFjaCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uX2ZvckVhY2gsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewot
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9ucz46OmNhbGw8anNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZUZ1bmN0aW9uRm9yRWFjaEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
Zm9yRWFjaCIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9ucz46OmNhbGw8anNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc1Byb3RvdHlwZUZ1bmN0aW9uX2ZvckVhY2hCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgImZvckVhY2giKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5j
dGlvbkNsZWFyQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0U2V0
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMp
CitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uX2NsZWFyQm9keShKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0
eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
cz46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMzYzLDkgKzM2Myw5IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uQ2xlYXIsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90
b3R5cGVGdW5jdGlvbl9jbGVhciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2FsbDxqc1Rlc3RTZXRMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25DbGVhckJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY2xlYXIiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpjYWxsPGpzVGVzdFNl
dExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbl9jbGVhckJvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY2xlYXIiKTsKIH0KIAogSlNDOjpJ
c29TdWJzcGFjZSogSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uczo6c3Vic3Bh
Y2VGb3JJbXBsKEpTQzo6Vk0mIHZtKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuY3BwCShy
ZXZpc2lvbiAyNjg1NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U3RyaW5naWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyUHJvdG90eXBlRnVuY3Rp
b25fdG9TdHJpbmcpOwogCiAvLyBBdHRyaWJ1dGVzCiAKQEAgLTEwNyw3ICsxMDcsNyBAQCB0ZW1w
bGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RTdHJpbmdpCiBzdGF0aWMgY29uc3QgSGFzaFRh
YmxlVmFsdWUgSlNUZXN0U3RyaW5naWZpZXJQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAg
ICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3Rvciks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IpIH0gfSwKLSAgICB7ICJ0b1N0cmluZyIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0U3RyaW5naWZpZXJQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKSwgKGludHB0cl90KSAoMCkg
fSB9LAorICAgIHsgInRvU3RyaW5nIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0aW9u
X3RvU3RyaW5nKSwgKGludHB0cl90KSAoMCkgfSB9LAogfTsKIAogY29uc3QgQ2xhc3NJbmZvIEpT
VGVzdFN0cmluZ2lmaWVyUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0U3RyaW5naWZpZXIiLCAm
QmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVz
dFN0cmluZ2lmaWVyUHJvdG90eXBlKSB9OwpAQCAtMTg0LDcgKzE4NCw3IEBAIEpTQ19ERUZJTkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RTdHJpbmcKICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXRE
aXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZFZhbHVlKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmdCb2R5KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUs
IHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllcj46OkNsYXNzUGFyYW1ldGVy
IGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U3Ry
aW5naWZpZXJQcm90b3R5cGVGdW5jdGlvbl90b1N0cmluZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5h
bWUgSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVk
VGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTQs
OSArMTk0LDkgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExE
T01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLnRvU3RyaW5nKCkpKSk7CiB9CiAK
LUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0
aW9uVG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lm
aWVyUHJvdG90eXBlRnVuY3Rpb25fdG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0U3RyaW5naWZpZXI+OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVyUHJvdG90eXBl
RnVuY3Rpb25Ub1N0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
dG9TdHJpbmciKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyPjo6
Y2FsbDxqc1Rlc3RTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0aW9uX3RvU3RyaW5nQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0b1N0cmluZyIpOwogfQogCiBKU0M6Oklz
b1N1YnNwYWNlKiBKU1Rlc3RTdHJpbmdpZmllcjo6c3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZt
KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0
cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNP
cGVyYXRpb24uY3BwCShyZXZpc2lvbiAyNjg1NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAK
IC8vIEZ1bmN0aW9ucwogCi1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lm
aWVyQW5vbnltb3VzT3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uUHJv
dG90eXBlRnVuY3Rpb25fdG9TdHJpbmcpOwogCiAvLyBBdHRyaWJ1dGVzCiAKQEAgLTEwNyw3ICsx
MDcsNyBAQCB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RTdHJpbmdpCiBzdGF0aWMg
Y29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Q
cm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFN0
cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IpIH0gfSwKLSAgICB7ICJ0b1N0
cmluZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5j
dGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5j
dGlvbj4oanNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlv
blRvU3RyaW5nKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAgIHsgInRvU3RyaW5nIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RT
dHJpbmdpZmllckFub255bW91c09wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uX3RvU3RyaW5nKSwg
KGludHB0cl90KSAoMCkgfSB9LAogfTsKIAogY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFN0cmluZ2lm
aWVyQW5vbnltb3VzT3BlcmF0aW9uUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0U3RyaW5naWZp
ZXJBbm9ueW1vdXNPcGVyYXRpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uUHJv
dG90eXBlKSB9OwpAQCAtMTg0LDcgKzE4NCw3IEBAIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RTdHJpbmcKICAgICByZXR1cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZtLnBy
b3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7
CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmll
ckFub255bW91c09wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmdCb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJh
dGlvbj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Qcm90b3R5cGVG
dW5jdGlvbl90b1N0cmluZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpT
VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVk
VGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTQs
OSArMTk0LDkgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExE
T01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLnRvU3RyaW5nKCkpKSk7CiB9CiAK
LUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJh
dGlvblByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rpb25f
dG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZp
ZXJBbm9ueW1vdXNPcGVyYXRpb24+OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3Bl
cmF0aW9uUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAidG9TdHJpbmciKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uPjo6Y2FsbDxqc1Rlc3RTdHJpbmdpZmllckFu
b255bW91c09wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uX3RvU3RyaW5nQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0b1N0cmluZyIpOwogfQogCiBKU0M6Oklzb1N1YnNw
YWNlKiBKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbjo6c3Vic3BhY2VGb3JJbXBs
KEpTQzo6Vk0mIHZtKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck5h
bWVkT3BlcmF0aW9uLmNwcAkocmV2aXNpb24gMjY4NTQ3KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00Niw4ICs0Niw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAK
IC8vIEZ1bmN0aW9ucwogCi1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lm
aWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlvbklkZW50aWZpZXIpOwotSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBl
RnVuY3Rpb25Ub1N0cmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmlu
Z2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlvbl9pZGVudGlmaWVyKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3Rv
dHlwZUZ1bmN0aW9uX3RvU3RyaW5nKTsKIAogLy8gQXR0cmlidXRlcwogCkBAIC0xMDgsOCArMTA4
LDggQEAgdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0U3RyaW5naQogc3RhdGljIGNv
bnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5
cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0U3RyaW5naWZpZXJO
YW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiaWRlbnRpZmllciIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0
U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uSWRlbnRpZmllciksIChp
bnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJ0b1N0cmluZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0U3RyaW5naWZpZXJOYW1l
ZE9wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcpLCAoaW50cHRyX3QpICgwKSB9IH0s
CisgICAgeyAiaWRlbnRpZmllciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3Rv
dHlwZUZ1bmN0aW9uX2lkZW50aWZpZXIpLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAidG9T
dHJpbmciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVu
Y3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlvbl90
b1N0cmluZyksIChpbnRwdHJfdCkgKDApIH0gfSwKIH07CiAKIGNvbnN0IENsYXNzSW5mbyBKU1Rl
c3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0U3Ry
aW5naWZpZXJOYW1lZE9wZXJhdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3Rv
dHlwZSkgfTsKQEAgLTE4Niw3ICsxODYsNyBAQCBKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0
SlNUZXN0U3RyaW5nCiAgICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwog
fQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJO
YW1lZE9wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uSWRlbnRpZmllckJvZHkoSlNDOjpKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
dHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24+OjpD
bGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlvbl9pZGVu
dGlmaWVyQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6
OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5n
aWZpZXJOYW1lZE9wZXJhdGlvbj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk2LDEyICsxOTYsMTIgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExET01TdHJpbmc+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLmlkZW50aWZpZXIoKSkpKTsKIH0KIAotSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGVG
dW5jdGlvbklkZW50aWZpZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0
cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlvbl9pZGVudGlmaWVyLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRp
b24+OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlv
bklkZW50aWZpZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImlkZW50
aWZpZXIiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRP
cGVyYXRpb24+OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGVG
dW5jdGlvbl9pZGVudGlmaWVyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJpZGVudGlmaWVyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZ0Jv
ZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyTmFt
ZWRPcGVyYXRpb24+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5
cGVGdW5jdGlvbl90b1N0cmluZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9u
PEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRU
aGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIxMSw5
ICsyMTEsOSBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETERP
TVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIGltcGwuaWRlbnRpZmllcigpKSkpOwogfQog
Ci1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlv
blByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlvbl90b1N0cmlu
ZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllck5hbWVk
T3BlcmF0aW9uPjo6Y2FsbDxqc1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBl
RnVuY3Rpb25Ub1N0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
dG9TdHJpbmciKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyTmFt
ZWRPcGVyYXRpb24+OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5
cGVGdW5jdGlvbl90b1N0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAidG9TdHJpbmciKTsKIH0KIAogSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0U3RyaW5naWZpZXJO
YW1lZE9wZXJhdGlvbjo6c3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZtKQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uSW1wbGVtZW50ZWRBcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRB
cy5jcHAJKHJldmlzaW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00Niw4ICs0Niw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8v
IEZ1bmN0aW9ucwogCi1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVy
T3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZUZ1bmN0aW9uSWRlbnRpZmllcik7Ci1KU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50
ZWRBc1Byb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGVGdW5jdGlv
bl9pZGVudGlmaWVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZp
ZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlRnVuY3Rpb25fdG9TdHJpbmcpOwogCiAv
LyBBdHRyaWJ1dGVzCiAKQEAgLTEwOCw4ICsxMDgsOCBAQCB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNz
SW5mbyBKU1Rlc3RTdHJpbmdpCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0U3Ry
aW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7
CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
SW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBs
ZW1lbnRlZEFzQ29uc3RydWN0b3IpIH0gfSwKLSAgICB7ICJpZGVudGlmaWVyIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RTdHJp
bmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGVGdW5jdGlvbklkZW50aWZpZXIp
LCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAidG9TdHJpbmciLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFN0cmluZ2lmaWVy
T3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcpLCAoaW50cHRy
X3QpICgwKSB9IH0sCisgICAgeyAiaWRlbnRpZmllciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0U3RyaW5naWZpZXJPcGVyYXRp
b25JbXBsZW1lbnRlZEFzUHJvdG90eXBlRnVuY3Rpb25faWRlbnRpZmllciksIChpbnRwdHJfdCkg
KDApIH0gfSwKKyAgICB7ICJ0b1N0cmluZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBs
ZW1lbnRlZEFzUHJvdG90eXBlRnVuY3Rpb25fdG9TdHJpbmcpLCAoaW50cHRyX3QpICgwKSB9IH0s
CiB9OwogCiBjb25zdCBDbGFzc0luZm8gSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1l
bnRlZEFzUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBs
ZW1lbnRlZEFzIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGUp
IH07CkBAIC0xODYsNyArMTg2LDcgQEAgSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dFN0cmluZwogICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAot
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZUZ1bmN0aW9uSWRlbnRpZmllckJvZHkoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVt
ZW50ZWRBcz46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJv
dG90eXBlRnVuY3Rpb25faWRlbnRpZmllckJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3Bl
cmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcz46OkNsYXNzUGFy
YW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMTk2LDEyICsxOTYsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjpl
bmNvZGUodG9KUzxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLmFsdGVy
bmF0ZUlkZW50aWZpZXIoKSkpKTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZUZ1bmN0aW9uSWRlbnRp
ZmllciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlRnVuY3Rpb25faWRlbnRpZmllciwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0g
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVu
dGVkQXM+OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3Rv
dHlwZUZ1bmN0aW9uSWRlbnRpZmllckJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAiaWRlbnRpZmllciIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5n
aWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzPjo6Y2FsbDxqc1Rlc3RTdHJpbmdpZmllck9wZXJh
dGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGVGdW5jdGlvbl9pZGVudGlmaWVyQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJpZGVudGlmaWVyIik7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXNQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFt
ZSBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzPjo6
Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGVGdW5j
dGlvbl90b1N0cmluZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVz
dFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcz46OkNsYXNzUGFyYW1ldGVyIGNhc3Rl
ZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjEx
LDkgKzIxMSw5IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURM
RE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgaW1wbC5hbHRlcm5hdGVJZGVudGlmaWVy
KCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllck9w
ZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVk
QXNQcm90b3R5cGVGdW5jdGlvbl90b1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXM+OjpjYWxsPGpzVGVz
dFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZUZ1bmN0aW9uVG9TdHJp
bmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRvU3RyaW5nIik7Cisg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVu
dGVkQXM+OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3Rv
dHlwZUZ1bmN0aW9uX3RvU3RyaW5nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJ0b1N0cmluZyIpOwogfQogCiBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbkltcGxlbWVudGVkQXM6OnN1YnNwYWNlRm9ySW1wbChKU0M6OlZNJiB2bSkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5h
bWVkVG9TdHJpbmcuY3BwCShyZXZpc2lvbiAyNjg1NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3Ry
aW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RT
dHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5n
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25O
YW1lZFRvU3RyaW5nUHJvdG90eXBlRnVuY3Rpb25fdG9TdHJpbmcpOwogCiAvLyBBdHRyaWJ1dGVz
CiAKQEAgLTEwNyw3ICsxMDcsNyBAQCB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RT
dHJpbmdpCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25OYW1lZFRvU3RyaW5nUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9CiB7CiAgICAgeyAiY29u
c3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmlu
Z0NvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oc2V0SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29u
c3RydWN0b3IpIH0gfSwKLSAgICB7ICJ0b1N0cmluZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0U3RyaW5naWZpZXJPcGVyYXRp
b25OYW1lZFRvU3RyaW5nUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyksIChpbnRwdHJfdCkgKDAp
IH0gfSwKKyAgICB7ICJ0b1N0cmluZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRv
U3RyaW5nUHJvdG90eXBlRnVuY3Rpb25fdG9TdHJpbmcpLCAoaW50cHRyX3QpICgwKSB9IH0sCiB9
OwogCiBjb25zdCBDbGFzc0luZm8gSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3Ry
aW5nUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRv
U3RyaW5nIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdQcm90b3R5cGUpIH07
CkBAIC0xODQsNyArMTg0LDcgQEAgSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFN0
cmluZwogICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
TmFtZWRUb1N0cmluZ1Byb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmdCb2R5KEpTQzo6SlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5
cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJp
bmc+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ1Byb3RvdHlw
ZUZ1bmN0aW9uX3RvU3RyaW5nQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248
SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nPjo6Q2xhc3NQYXJhbWV0ZXIg
Y2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0xOTQsOSArMTk0LDkgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9K
UzxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLnRvU3RyaW5nKCkpKSk7
CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlv
bk5hbWVkVG9TdHJpbmdQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdQcm90
b3R5cGVGdW5jdGlvbl90b1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmc+OjpjYWxsPGpzVGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ1Byb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmdCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRvU3RyaW5nIik7CisgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmc+
OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ1Byb3RvdHlwZUZ1
bmN0aW9uX3RvU3RyaW5nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0
b1N0cmluZyIpOwogfQogCiBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3RTdHJpbmdpZmllck9wZXJh
dGlvbk5hbWVkVG9TdHJpbmc6OnN1YnNwYWNlRm9ySW1wbChKU0M6OlZNJiB2bSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJl
YWRPbmx5QXR0cmlidXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZS5jcHAJ
KHJldmlzaW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDcsMTMgKzQ3LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9u
cwogCi1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlB
dHRyaWJ1dGVQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZVByb3RvdHlwZUZ1bmN0aW9u
X3RvU3RyaW5nKTsKIAogLy8gQXR0cmlidXRlcwogCiBKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3Rvcik7CiBKU0NfREVD
TEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVD
b25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFN0cmluZ2lmaWVy
UmVhZE9ubHlBdHRyaWJ1dGVJZGVudGlmaWVyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIo
anNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZV9pZGVudGlmaWVyKTsKIAogY2xhc3Mg
SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZVByb3RvdHlwZSBmaW5hbCA6IHB1Ymxp
YyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTA5LDggKzEwOSw4IEBAIHRl
bXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFN0cmluZ2kKIHN0YXRpYyBjb25zdCBIYXNo
VGFibGVWYWx1ZSBKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlUHJvdG90eXBlVGFi
bGVWYWx1ZXNbXSA9CiB7CiAgICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFN0cmlu
Z2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFN0cmluZ2lmaWVyUmVh
ZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3RvcikgfSB9LAotICAgIHsgImlkZW50aWZpZXIiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJp
YnV0ZUlkZW50aWZpZXIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPigwKSB9IH0sCi0gICAgeyAidG9TdHJpbmciLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFN0cmluZ2lmaWVy
UmVhZE9ubHlBdHRyaWJ1dGVQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKSwgKGludHB0cl90KSAo
MCkgfSB9LAorICAgIHsgImlkZW50aWZpZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0
b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZV9pZGVudGlmaWVyKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAor
ICAgIHsgInRvU3RyaW5nIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJh
d05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlUHJvdG90
eXBlRnVuY3Rpb25fdG9TdHJpbmcpLCAoaW50cHRyX3QpICgwKSB9IH0sCiB9OwogCiBjb25zdCBD
bGFzc0luZm8gSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZVByb3RvdHlwZTo6c19p
bmZvID0geyAiVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUiLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFN0cmluZ2lmaWVy
UmVhZE9ubHlBdHRyaWJ1dGVQcm90b3R5cGUpIH07CkBAIC0xOTIsNyArMTkyLDcgQEAgSlNDX0RF
RklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFN0cmluZwogICAgIHJldHVybiBwcm90b3R5cGUt
PnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFN0
cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVJZGVudGlmaWVyR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRl
JiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyUmVh
ZE9ubHlBdHRyaWJ1dGVfaWRlbnRpZmllckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZSYgdGhpc09iamVj
dCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjAwLDEy
ICsyMDAsMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyUgogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGlj
YWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuaWRlbnRpZmllcigpKSkpOwogfQogCi1K
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0
ZUlkZW50aWZpZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVfaWRlbnRpZmllciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTdHJpbmdp
ZmllclJlYWRPbmx5QXR0cmlidXRlPjo6Z2V0PGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRy
aWJ1dGVJZGVudGlmaWVyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiaWRlbnRpZmllciIpOworICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZT46OmdldDxq
c1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlX2lkZW50aWZpZXJHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJpZGVudGlmaWVyIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlUHJvdG90eXBlRnVuY3Rpb25Ub1N0
cmluZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lm
aWVyUmVhZE9ubHlBdHRyaWJ1dGU+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRy
aWJ1dGVQcm90b3R5cGVGdW5jdGlvbl90b1N0cmluZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUg
SURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGU+OjpDbGFzc1Bh
cmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTIxNSw5ICsyMTUsOSBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVu
Y29kZSh0b0pTPElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIGltcGwuaWRlbnRp
ZmllcigpKSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZp
ZXJSZWFkT25seUF0dHJpYnV0ZVByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVQcm90
b3R5cGVGdW5jdGlvbl90b1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlPjo6Y2FsbDxqc1Rlc3RTdHJpbmdpZmll
clJlYWRPbmx5QXR0cmlidXRlUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZ0JvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidG9TdHJpbmciKTsKKyAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGU+OjpjYWxsPGpzVGVzdFN0
cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVQcm90b3R5cGVGdW5jdGlvbl90b1N0cmluZ0JvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidG9TdHJpbmciKTsKIH0KIAogSlND
OjpJc29TdWJzcGFjZSogSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZTo6c3Vic3Bh
Y2VGb3JJbXBsKEpTQzo6Vk0mIHZtKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuY3BwCShyZXZpc2lvbiAyNjg1NDcpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJS
ZWFkV3JpdGVBdHRyaWJ1dGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NywxNCArNDcsMTQgQEAg
dXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVQcm90b3R5cGVGdW5j
dGlvblRvU3RyaW5nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZp
ZXJSZWFkV3JpdGVBdHRyaWJ1dGVQcm90b3R5cGVGdW5jdGlvbl90b1N0cmluZyk7CiAKIC8vIEF0
dHJpYnV0ZXMKIAogSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RTdHJpbmdpZmllclJl
YWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKTsKIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIo
c2V0SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3Rvcik7Ci1KU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRl
SWRlbnRpZmllcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFN0cmluZ2lm
aWVyUmVhZFdyaXRlQXR0cmlidXRlSWRlbnRpZmllcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VU
VEVSKGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlX2lkZW50aWZpZXIpOworSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJp
YnV0ZV9pZGVudGlmaWVyKTsKIAogY2xhc3MgSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRy
aWJ1dGVQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1
YmxpYzoKQEAgLTExMCw4ICsxMTAsOCBAQCB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rl
c3RTdHJpbmdpCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0U3RyaW5naWZpZXJS
ZWFkV3JpdGVBdHRyaWJ1dGVQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25z
dHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25z
dHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KHNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3Ip
IH0gfSwKLSAgICB7ICJpZGVudGlmaWVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0
ZUlkZW50aWZpZXIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUlkZW50aWZp
ZXIpIH0gfSwKLSAgICB7ICJ0b1N0cmluZyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRy
aWJ1dGVQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKSwgKGludHB0cl90KSAoMCkgfSB9LAorICAg
IHsgImlkZW50aWZpZXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1
dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlX2lkZW50aWZp
ZXIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PihzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZV9pZGVudGlmaWVyKSB9IH0s
CisgICAgeyAidG9TdHJpbmciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlUHJv
dG90eXBlRnVuY3Rpb25fdG9TdHJpbmcpLCAoaW50cHRyX3QpICgwKSB9IH0sCiB9OwogCiBjb25z
dCBDbGFzc0luZm8gSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVQcm90b3R5cGU6
OnNfaW5mbyA9IHsgIlRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSIsICZCYXNlOjpz
X2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0U3RyaW5n
aWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVQcm90b3R5cGUpIH07CkBAIC0xOTMsNyArMTkzLDcgQEAg
SlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFN0cmluZwogICAgIHJldHVybiBwcm90
b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlSWRlbnRpZmllckdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVB
dHRyaWJ1dGUmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0U3RyaW5n
aWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVfaWRlbnRpZmllckdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUm
IHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTIwMSwxMiArMjAxLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RTdHJpbmdp
ZmllclIKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3Ry
aW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmlkZW50aWZpZXIoKSkp
KTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdy
aXRlQXR0cmlidXRlSWRlbnRpZmllciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIoanNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVfaWRlbnRp
ZmllciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZT46OmdldDxqc1Rlc3RTdHJpbmdpZmll
clJlYWRXcml0ZUF0dHJpYnV0ZUlkZW50aWZpZXJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJpZGVudGlmaWVy
Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0
dHJpYnV0ZT46OmdldDxqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZV9pZGVudGlm
aWVyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiaWRlbnRpZmllciIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVJZGVudGlmaWVyU2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RTdHJpbmdpZmllclJl
YWRXcml0ZUF0dHJpYnV0ZSYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZV9pZGVudGlmaWVy
U2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RTdHJpbmdp
ZmllclJlYWRXcml0ZUF0dHJpYnV0ZSYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAg
ICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjE5LDEyICsyMTksMTIg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdFN0cmluZ2lmaWVyUgogICAgIHJldHVybiB0
cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0U3RyaW5naWZpZXJS
ZWFkV3JpdGVBdHRyaWJ1dGVJZGVudGlmaWVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RTdHJpbmdpZmllclJl
YWRXcml0ZUF0dHJpYnV0ZV9pZGVudGlmaWVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFN0cmluZ2lmaWVyUmVh
ZFdyaXRlQXR0cmlidXRlPjo6c2V0PHNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmli
dXRlSWRlbnRpZmllclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAiaWRlbnRpZmllciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGU+OjpzZXQ8c2V0SlNUZXN0U3RyaW5naWZpZXJS
ZWFkV3JpdGVBdHRyaWJ1dGVfaWRlbnRpZmllclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiaWRlbnRpZmllciIpOwogfQogCi1zdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1
dGVQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExP
cGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGU+OjpDbGFzc1BhcmFt
ZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlUHJvdG90eXBlRnVuY3Rpb25fdG9TdHJpbmdC
b2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZy
YW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllclJl
YWRXcml0ZUF0dHJpYnV0ZT46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0
byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjM0LDkgKzIzNCw5IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3RyaW5nPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgaW1wbC5pZGVudGlmaWVyKCkpKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZVByb3RvdHlwZUZ1
bmN0aW9uVG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmlu
Z2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlUHJvdG90eXBlRnVuY3Rpb25fdG9TdHJpbmcsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRy
aWJ1dGU+OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlUHJvdG90eXBl
RnVuY3Rpb25Ub1N0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
dG9TdHJpbmciKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyUmVh
ZFdyaXRlQXR0cmlidXRlPjo6Y2FsbDxqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0
ZVByb3RvdHlwZUZ1bmN0aW9uX3RvU3RyaW5nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJ0b1N0cmluZyIpOwogfQogCiBKU0M6Oklzb1N1YnNwYWNlKiBKU1Rlc3RTdHJp
bmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZTo6c3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZtKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVk
ZWZzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCShyZXZpc2lvbiAyNjg1NDcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02NSwzOSArNjUsMzkgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVu
Y3Rpb25zCiAKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5
cGVGdW5jdGlvbkZ1bmMpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVm
c1Byb3RvdHlwZUZ1bmN0aW9uU2V0U2hhZG93KTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyk7Ci1K
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25O
dWxsYWJsZVNlcXVlbmNlQXJnKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlw
ZWRlZnNQcm90b3R5cGVGdW5jdGlvblNlcXVlbmNlT2ZOdWxsYWJsZXNBcmcpOwotSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVT
ZXF1ZW5jZU9mTnVsbGFibGVzQXJnKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VPZlVuaW9uc0FyZyk7Ci1K
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25V
bmlvbkFyZyk7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90
eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1wKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNXaXRoQ2xhbXBJblR5cGVkZWYpOwotSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uUG9p
bnRGdW5jdGlvbik7Ci1KU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJv
dG90eXBlRnVuY3Rpb25TdHJpbmdTZXF1ZW5jZUZ1bmN0aW9uKTsKLUpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ1NlcXVlbmNlRnVu
Y3Rpb24yKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5
cGVGdW5jdGlvbkNhbGxXaXRoU2VxdWVuY2VUaGF0UmVxdWlyZXNJbmNsdWRlKTsKLUpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhFeGNlcHRpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1By
b3RvdHlwZUZ1bmN0aW9uX2Z1bmMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX3NldFNoYWRvdyk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aFNlcXVlbmNl
QXJnKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVG
dW5jdGlvbl9udWxsYWJsZVNlcXVlbmNlQXJnKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbl9zZXF1ZW5jZU9mTnVsbGFibGVzQXJnKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlv
bl9udWxsYWJsZVNlcXVlbmNlT2ZOdWxsYWJsZXNBcmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX251bGxhYmxlU2VxdWVuY2VPZlVu
aW9uc0FyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90
eXBlRnVuY3Rpb25fdW5pb25BcmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX2Z1bmNXaXRoQ2xhbXApOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX2Z1bmNXaXRoQ2xhbXBJ
blR5cGVkZWYpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3Rv
dHlwZUZ1bmN0aW9uX3BvaW50RnVuY3Rpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX3N0cmluZ1NlcXVlbmNlRnVuY3Rpb24pOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9u
X3N0cmluZ1NlcXVlbmNlRnVuY3Rpb24yKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbl9jYWxsV2l0aFNlcXVlbmNlVGhhdFJlcXVpcmVz
SW5jbHVkZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90
eXBlRnVuY3Rpb25fbWV0aG9kV2l0aEV4Y2VwdGlvbik7CiAKIC8vIEF0dHJpYnV0ZXMKIAogSlND
X0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKTsKIEpTQ19E
RUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0VHlwZWRlZnNDb25zdHJ1Y3Rvcik7Ci1KU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIp
OwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9u
Z0xvbmdBdHRyKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0VHlwZWRlZnNTZXJp
YWxpemVkU2NyaXB0VmFsdWUpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RU
eXBlZGVmc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVS
KGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JUZXN0U3ViT2JqKTsKLUpTQ19ERUNMQVJFX0NVU1RP
TV9HRVRURVIoanNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXApOwotSlNDX0RFQ0xBUkVf
Q1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcCk7Ci1KU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wSW5U
eXBlZGVmKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0VHlwZWRlZnNBdHRy
aWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1Rl
c3RUeXBlZGVmc0J1ZmZlclNvdXJjZUF0dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihz
ZXRKU1Rlc3RUeXBlZGVmc0J1ZmZlclNvdXJjZUF0dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dF
VFRFUihqc1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHIpOwotSlNDX0RFQ0xBUkVfQ1VTVE9N
X1NFVFRFUihzZXRKU1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHIpOworSlNDX0RFQ0xBUkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RUeXBlZGVmc191bnNpZ25lZExvbmdMb25nQXR0cik7CitKU0Nf
REVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFR5cGVkZWZzX3Vuc2lnbmVkTG9uZ0xvbmdB
dHRyKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0VHlwZWRlZnNfc2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0VHlwZWRl
ZnNfc2VyaWFsaXplZFNjcmlwdFZhbHVlKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0VHlwZWRlZnNDb25zdHJ1Y3Rvcl9UZXN0U3ViT2JqKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9H
RVRURVIoanNUZXN0VHlwZWRlZnNfYXR0cmlidXRlV2l0aENsYW1wKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0VHlwZWRlZnNfYXR0cmlidXRlV2l0aENsYW1wKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNUZXN0VHlwZWRlZnNfYXR0cmlidXRlV2l0aENsYW1wSW5U
eXBlZGVmKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0VHlwZWRlZnNfYXR0
cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNU
ZXN0VHlwZWRlZnNfYnVmZmVyU291cmNlQXR0cik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVS
KHNldEpTVGVzdFR5cGVkZWZzX2J1ZmZlclNvdXJjZUF0dHIpOworSlNDX0RFQ0xBUkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RUeXBlZGVmc19kb21UaW1lU3RhbXBBdHRyKTsKK0pTQ19ERUNMQVJFX0NV
U1RPTV9TRVRURVIoc2V0SlNUZXN0VHlwZWRlZnNfZG9tVGltZVN0YW1wQXR0cik7CiAKIGNsYXNz
IEpTVGVzdFR5cGVkZWZzUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9i
amVjdCB7CiBwdWJsaWM6CkBAIC0xNTEsNyArMTUxLDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJs
ZSBKU1Rlc3RUeXBlZGVmc1RhYgogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0
VHlwZWRlZnNDb25zdHJ1Y3RvclRhYmxlVmFsdWVzW10gPQogewotICAgIHsgIlRlc3RTdWJPYmoi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkp
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JUZXN0U3ViT2JqKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorICAg
IHsgIlRlc3RTdWJPYmoiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JfVGVzdFN1
Yk9iaiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KDApIH0gfSwKIH07CiAKIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TF9BVFRSSUJVVEVTIEpTVGVzdFR5cGVkZWZzRE9NQ29uc3RydWN0b3I6OmNvbnN0cnVjdChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCkBA
IC0yMDMsMjcgKzIwMywyNyBAQCB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RUeXBl
ZGVmCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0VHlwZWRlZnNQcm90b3R5cGVU
YWJsZVZhbHVlc1tdID0KIHsKICAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0VHlw
ZWRlZnNDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IpIH0gfSwKLSAgICB7
ICJ1bnNpZ25lZExvbmdMb25nQXR0ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRP
TUF0dHJpYnV0ZSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0ciks
IChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNl
dEpTVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIpIH0gfSwKLSAgICB7ICJzZXJpYWxp
emVkU2NyaXB0VmFsdWUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1
dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzU2VyaWFsaXplZFNjcmlwdFZhbHVlKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0
VHlwZWRlZnNTZXJpYWxpemVkU2NyaXB0VmFsdWUpIH0gfSwKLSAgICB7ICJhdHRyaWJ1dGVXaXRo
Q2xhbXAiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3Vz
dG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0VHlwZWRlZnNBdHRy
aWJ1dGVXaXRoQ2xhbXApIH0gfSwKLSAgICB7ICJhdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNj
ZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0VHlwZWRlZnNB
dHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYpIH0gfSwKLSAgICB7ICJidWZmZXJTb3VyY2VBdHRy
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RUeXBlZGVmc0J1ZmZlclNvdXJjZUF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RUeXBlZGVmc0J1ZmZlclNvdXJj
ZUF0dHIpIH0gfSwKLSAgICB7ICJkb21UaW1lU3RhbXBBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RUeXBlZGVmc0RvbVRpbWVT
dGFtcEF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPihzZXRKU1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHIpIH0gfSwKLSAgICB7ICJm
dW5jIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0
aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuYyksIChpbnRwdHJfdCkgKDAp
IH0gfSwKLSAgICB7ICJzZXRTaGFkb3ciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25T
ZXRTaGFkb3cpLCAoaW50cHRyX3QpICgzKSB9IH0sCi0gICAgeyAibWV0aG9kV2l0aFNlcXVlbmNl
QXJnIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0
aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXJn
KSwgKGludHB0cl90KSAoMSkgfSB9LAotICAgIHsgIm51bGxhYmxlU2VxdWVuY2VBcmciLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVNlcXVlbmNlQXJnKSwgKGludHB0cl90
KSAoMSkgfSB9LAotICAgIHsgInNlcXVlbmNlT2ZOdWxsYWJsZXNBcmciLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFR5cGVkZWZz
UHJvdG90eXBlRnVuY3Rpb25TZXF1ZW5jZU9mTnVsbGFibGVzQXJnKSwgKGludHB0cl90KSAoMSkg
fSB9LAotICAgIHsgIm51bGxhYmxlU2VxdWVuY2VPZk51bGxhYmxlc0FyZyIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0VHlwZWRl
ZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VPZk51bGxhYmxlc0FyZyksIChpbnRw
dHJfdCkgKDEpIH0gfSwKLSAgICB7ICJudWxsYWJsZVNlcXVlbmNlT2ZVbmlvbnNBcmciLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVNlcXVlbmNlT2ZVbmlvbnNBcmcpLCAo
aW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAidW5pb25BcmciLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFR5cGVkZWZzUHJvdG90
eXBlRnVuY3Rpb25VbmlvbkFyZyksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJmdW5jV2l0
aENsYW1wIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1
bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcCksIChp
bnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJmdW5jV2l0aENsYW1wSW5UeXBlZGVmIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcEluVHlwZWRlZiksIChpbnRwdHJf
dCkgKDEpIH0gfSwKLSAgICB7ICJwb2ludEZ1bmN0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlw
ZUZ1bmN0aW9uUG9pbnRGdW5jdGlvbiksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJzdHJp
bmdTZXF1ZW5jZUZ1bmN0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5n
U2VxdWVuY2VGdW5jdGlvbiksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJzdHJpbmdTZXF1
ZW5jZUZ1bmN0aW9uMiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdO
YXRpdmVGdW5jdGlvbj4oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ1NlcXVl
bmNlRnVuY3Rpb24yKSwgKGludHB0cl90KSAoMSkgfSB9LAotICAgIHsgImNhbGxXaXRoU2VxdWVu
Y2VUaGF0UmVxdWlyZXNJbmNsdWRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uQ2Fs
bFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUpLCAoaW50cHRyX3QpICgxKSB9IH0sCi0g
ICAgeyAibWV0aG9kV2l0aEV4Y2VwdGlvbiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhFeGNlcHRpb24pLCAoaW50cHRyX3QpICgwKSB9IH0sCisgICAgeyAidW5zaWdu
ZWRMb25nTG9uZ0F0dHIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1
dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzX3Vuc2lnbmVkTG9uZ0xvbmdBdHRyKSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0
VHlwZWRlZnNfdW5zaWduZWRMb25nTG9uZ0F0dHIpIH0gfSwKKyAgICB7ICJzZXJpYWxpemVkU2Ny
aXB0VmFsdWUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzX3NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdFR5cGVk
ZWZzX3NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSkgfSB9LAorICAgIHsgImF0dHJpYnV0ZVdpdGhDbGFt
cCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21B
Y2Nlc3NvciB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRPTUF0dHJpYnV0ZSksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0VHlwZWRlZnNfYXR0cmlidXRlV2l0aENsYW1wKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0VHlwZWRlZnNfYXR0cmli
dXRlV2l0aENsYW1wKSB9IH0sCisgICAgeyAiYXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vz
c29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RUeXBlZGVmc19hdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RUeXBlZGVmc19h
dHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYpIH0gfSwKKyAgICB7ICJidWZmZXJTb3VyY2VBdHRy
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihq
c1Rlc3RUeXBlZGVmc19idWZmZXJTb3VyY2VBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0VHlwZWRlZnNfYnVmZmVyU291
cmNlQXR0cikgfSB9LAorICAgIHsgImRvbVRpbWVTdGFtcEF0dHIiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzX2RvbVRp
bWVTdGFtcEF0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPihzZXRKU1Rlc3RUeXBlZGVmc19kb21UaW1lU3RhbXBBdHRyKSB9IH0sCisgICAg
eyAiZnVuYyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpG
dW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVG
dW5jdGlvbj4oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbl9mdW5jKSwgKGludHB0cl90
KSAoMCkgfSB9LAorICAgIHsgInNldFNoYWRvdyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5j
dGlvbl9zZXRTaGFkb3cpLCAoaW50cHRyX3QpICgzKSB9IH0sCisgICAgeyAibWV0aG9kV2l0aFNl
cXVlbmNlQXJnIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhTZXF1
ZW5jZUFyZyksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7ICJudWxsYWJsZVNlcXVlbmNlQXJn
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX251bGxhYmxlU2VxdWVuY2VBcmcpLCAo
aW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAic2VxdWVuY2VPZk51bGxhYmxlc0FyZyIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0
VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbl9zZXF1ZW5jZU9mTnVsbGFibGVzQXJnKSwgKGludHB0
cl90KSAoMSkgfSB9LAorICAgIHsgIm51bGxhYmxlU2VxdWVuY2VPZk51bGxhYmxlc0FyZyIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbl9udWxsYWJsZVNlcXVlbmNlT2ZOdWxsYWJsZXNB
cmcpLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAibnVsbGFibGVTZXF1ZW5jZU9mVW5pb25z
QXJnIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0
aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX251bGxhYmxlU2VxdWVuY2VPZlVu
aW9uc0FyZyksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAgICB7ICJ1bmlvbkFyZyIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0VHlw
ZWRlZnNQcm90b3R5cGVGdW5jdGlvbl91bmlvbkFyZyksIChpbnRwdHJfdCkgKDEpIH0gfSwKKyAg
ICB7ICJmdW5jV2l0aENsYW1wIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX2Z1bmNX
aXRoQ2xhbXApLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAgeyAiZnVuY1dpdGhDbGFtcEluVHlw
ZWRlZiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5j
dGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5j
dGlvbj4oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbl9mdW5jV2l0aENsYW1wSW5UeXBl
ZGVmKSwgKGludHB0cl90KSAoMSkgfSB9LAorICAgIHsgInBvaW50RnVuY3Rpb24iLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFR5
cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25fcG9pbnRGdW5jdGlvbiksIChpbnRwdHJfdCkgKDApIH0g
fSwKKyAgICB7ICJzdHJpbmdTZXF1ZW5jZUZ1bmN0aW9uIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlw
ZUZ1bmN0aW9uX3N0cmluZ1NlcXVlbmNlRnVuY3Rpb24pLCAoaW50cHRyX3QpICgxKSB9IH0sCisg
ICAgeyAic3RyaW5nU2VxdWVuY2VGdW5jdGlvbjIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVu
Y3Rpb25fc3RyaW5nU2VxdWVuY2VGdW5jdGlvbjIpLCAoaW50cHRyX3QpICgxKSB9IH0sCisgICAg
eyAiY2FsbFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdFR5cGVkZWZzUHJv
dG90eXBlRnVuY3Rpb25fY2FsbFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUpLCAoaW50
cHRyX3QpICgxKSB9IH0sCisgICAgeyAibWV0aG9kV2l0aEV4Y2VwdGlvbiIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0VHlwZWRl
ZnNQcm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoRXhjZXB0aW9uKSwgKGludHB0cl90KSAoMCkg
fSB9LAogfTsKIAogY29uc3QgQ2xhc3NJbmZvIEpTVGVzdFR5cGVkZWZzUHJvdG90eXBlOjpzX2lu
Zm8gPSB7ICJUZXN0VHlwZWRlZnMiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdFR5cGVkZWZzUHJvdG90eXBlKSB9OwpAQCAtMzA1LDcg
KzMwNSw3IEBAIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RUeXBlZGUKICAgICBy
ZXR1cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVj
dG9yLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRyR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RUeXBlZGVmcyYgdGhpc09iamVjdCkK
K3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc191bnNpZ25lZExvbmdMb25nQXR0
ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0VHlwZWRl
ZnMmIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTMxMywxMiArMzEzLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RUeXBl
ZGVmc1Vuc2kKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5z
aWduZWRMb25nTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnNp
Z25lZExvbmdMb25nQXR0cigpKSkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNU
ZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitK
U0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0VHlwZWRlZnNfdW5zaWduZWRMb25nTG9uZ0F0
dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0VHlwZWRlZnM+OjpnZXQ8anNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0ckdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgInVuc2lnbmVkTG9uZ0xvbmdBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RUeXBlZGVmcz46OmdldDxqc1Rlc3RUeXBlZGVmc191bnNpZ25lZExvbmdMb25n
QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInVuc2lnbmVkTG9uZ0xvbmdBdHRyIik7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRyU2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RUeXBlZGVmcyYgdGhp
c09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RUeXBl
ZGVmc191bnNpZ25lZExvbmdMb25nQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNUZXN0VHlwZWRlZnMmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7
CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMzMSwxMiArMzMx
LDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc1Vuc2kKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFR5cGVkZWZz
VW5zaWduZWRMb25nTG9uZ0F0dHIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFR5cGVkZWZzX3Vuc2lnbmVkTG9u
Z0xvbmdBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6c2V0PHNldEpTVGVzdFR5cGVkZWZz
VW5zaWduZWRMb25nTG9uZ0F0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgInVuc2lnbmVkTG9uZ0xvbmdBdHRyIik7CisgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RUeXBlZGVmcz46OnNldDxzZXRKU1Rlc3RUeXBlZGVmc191bnNpZ25l
ZExvbmdMb25nQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAidW5zaWduZWRMb25nTG9uZ0F0dHIiKTsKIH0KIAotc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdFR5cGVkZWZzU2VyaWFsaXplZFNjcmlwdFZhbHVlR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RUeXBlZGVmcyYgdGhpc09iamVjdCkK
K3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc19zZXJpYWxpemVkU2NyaXB0VmFs
dWVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdFR5cGVk
ZWZzJiB0aGlzT2JqZWN0KQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0zNDQsMTIgKzM0NCwxMiBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0VHlw
ZWRlZnNTZXJpCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTxTZXJpYWxpemVkU2NyaXB0VmFsdWU+PihsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5zZXJp
YWxpemVkU2NyaXB0VmFsdWUoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdFR5cGVkZWZzU2VyaWFsaXplZFNjcmlwdFZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkK
K0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RUeXBlZGVmc19zZXJpYWxpemVkU2NyaXB0
VmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0VHlwZWRlZnM+OjpnZXQ8anNUZXN0VHlwZWRlZnNTZXJpYWxpemVkU2NyaXB0VmFsdWVH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJzZXJpYWxpemVkU2NyaXB0VmFsdWUiKTsKKyAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6Z2V0PGpzVGVzdFR5cGVkZWZzX3NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIpOwogfQog
Ci1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0VHlwZWRlZnNTZXJpYWxpemVkU2NyaXB0VmFs
dWVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdFR5cGVk
ZWZzJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdFR5cGVkZWZzX3NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVNldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0VHlwZWRlZnMmIHRoaXNPYmplY3QsIEpTVmFsdWUg
dmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM2
MiwyMyArMzYyLDIzIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc1NlcmkK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVz
dFR5cGVkZWZzU2VyaWFsaXplZFNjcmlwdFZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RUeXBlZGVmc19z
ZXJpYWxpemVkU2NyaXB0VmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
KQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpzZXQ8c2V0SlNU
ZXN0VHlwZWRlZnNTZXJpYWxpemVkU2NyaXB0VmFsdWVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIpOwor
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpzZXQ8c2V0SlNUZXN0VHlw
ZWRlZnNfc2VyaWFsaXplZFNjcmlwdFZhbHVlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzZXJpYWxpemVkU2NyaXB0VmFsdWUiKTsKIH0KIAot
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JUZXN0U3ViT2Jq
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0KQorc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JfVGVzdFN1Yk9iakdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJuIEpTVGVzdFN1Yk9iajo6Z2V0Q29uc3RydWN0
b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2Jq
ZWN0KCkpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0VHlwZWRlZnNDb25z
dHJ1Y3RvclRlc3RTdWJPYmosIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JfVGVzdFN1Yk9iaiwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RUeXBlZGVmcz46
OmdldFN0YXRpYzxqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yVGVzdFN1Yk9iakdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RTdWJPYmoiKTsKKyAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6Z2V0U3RhdGljPGpzVGVzdFR5cGVkZWZzQ29u
c3RydWN0b3JfVGVzdFN1Yk9iakdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgIlRlc3RTdWJPYmoiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFR5cGVk
ZWZzQXR0cmlidXRlV2l0aENsYW1wR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RUeXBlZGVmcyYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RUeXBlZGVmc19hdHRyaWJ1dGVXaXRoQ2xhbXBHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdFR5cGVkZWZzJiB0aGlzT2JqZWN0KQogewogICAg
IGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zODYsMTIgKzM4NiwxMiBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0VHlwZWRlZnNBdHRyCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETENsYW1wQWRhcHRvcjxJRExVbnNpZ25lZExv
bmdMb25nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVX
aXRoQ2xhbXAoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdFR5cGVk
ZWZzQXR0cmlidXRlV2l0aENsYW1wLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVf
Q1VTVE9NX0dFVFRFUihqc1Rlc3RUeXBlZGVmc19hdHRyaWJ1dGVXaXRoQ2xhbXAsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+
OjpnZXQ8anNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJh
dHRyaWJ1dGVXaXRoQ2xhbXAiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFR5cGVk
ZWZzPjo6Z2V0PGpzVGVzdFR5cGVkZWZzX2F0dHJpYnV0ZVdpdGhDbGFtcEdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgImF0dHJpYnV0ZVdpdGhDbGFtcCIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTVGVzdFR5cGVkZWZzJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVl
KQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdFR5cGVkZWZzX2F0dHJpYnV0ZVdpdGhDbGFt
cFNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0VHlwZWRl
ZnMmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQwNCwxMiArNDA0LDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RUeXBlZGVmc0F0dHIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSlNDX0RFRklO
RV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1Rlc3RUeXBlZGVmc19hdHRyaWJ1dGVXaXRoQ2xhbXAsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlw
ZWRlZnM+OjpzZXQ8c2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImF0dHJpYnV0ZVdp
dGhDbGFtcCIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpzZXQ8
c2V0SlNUZXN0VHlwZWRlZnNfYXR0cmlidXRlV2l0aENsYW1wU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJhdHRyaWJ1dGVXaXRoQ2xhbXAiKTsK
IH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENs
YW1wSW5UeXBlZGVmR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1Rlc3RUeXBlZGVmcyYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RU
eXBlZGVmc19hdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWZHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdFR5cGVkZWZzJiB0aGlzT2JqZWN0KQogewogICAg
IGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00MTcsMTIgKzQxNywxMiBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0VHlwZWRlZnNBdHRyCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETENsYW1wQWRhcHRvcjxJRExMb25nPj4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVXaXRoQ2xhbXBJblR5
cGVkZWYoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpzVGVzdFR5cGVkZWZz
QXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1Rlc3RUeXBlZGVmc19hdHRyaWJ1dGVXaXRoQ2xhbXBJblR5
cGVkZWYsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0VHlwZWRlZnM+OjpnZXQ8anNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5
cGVkZWZHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYiKTsKKyAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6Z2V0PGpzVGVzdFR5cGVkZWZz
X2F0dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZkdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImF0dHJpYnV0ZVdp
dGhDbGFtcEluVHlwZWRlZiIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0VHlw
ZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWZTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdFR5cGVkZWZzJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZh
bHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdFR5cGVkZWZzX2F0dHJpYnV0ZVdpdGhD
bGFtcEluVHlwZWRlZlNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNUZXN0VHlwZWRlZnMmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYg
dm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQzNSwxMiArNDM1LDEyIEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc0F0dHIKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0
aENsYW1wSW5UeXBlZGVmLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RUeXBlZGVmc19hdHRyaWJ1dGVXaXRoQ2xh
bXBJblR5cGVkZWYsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpzZXQ8c2V0SlNUZXN0VHlwZWRl
ZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWZTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImF0dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZiIp
OworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpzZXQ8c2V0SlNUZXN0
VHlwZWRlZnNfYXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJhdHRyaWJ1dGVXaXRoQ2xhbXBJblR5
cGVkZWYiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQnVmZmVy
U291cmNlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNU
ZXN0VHlwZWRlZnMmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0VHlw
ZWRlZnNfYnVmZmVyU291cmNlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNUZXN0VHlwZWRlZnMmIHRoaXNPYmplY3QpCiB7CiAgICAgYXV0byYgdm0gPSBK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ0OCwxMiArNDQ4LDEyIEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0J1ZmYKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMVW5pb248SURMQXJyYXlCdWZmZXJWaWV3LCBJRExBcnJheUJ1ZmZl
cj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJv
d1Njb3BlLCBpbXBsLmJ1ZmZlclNvdXJjZUF0dHIoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzVGVzdFR5cGVkZWZzQnVmZmVyU291cmNlQXR0ciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0VHlwZWRlZnNfYnVmZmVyU291
cmNlQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RUeXBlZGVmcz46OmdldDxqc1Rlc3RUeXBlZGVmc0J1ZmZlclNvdXJjZUF0dHJHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJidWZmZXJTb3VyY2VBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RUeXBlZGVmcz46OmdldDxqc1Rlc3RUeXBlZGVmc19idWZmZXJTb3VyY2VBdHRyR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiYnVmZmVyU291cmNlQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0VHlwZWRlZnNCdWZmZXJTb3VyY2VBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RUeXBlZGVmcyYgdGhpc09iamVjdCwgSlNWYWx1
ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc19idWZmZXJTb3Vy
Y2VBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RU
eXBlZGVmcyYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDY2LDEyICs0NjYsMTIgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdFR5cGVkZWZzQnVmZgogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0Nf
REVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNUZXN0VHlwZWRlZnNCdWZmZXJTb3VyY2VBdHRyLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NF
VFRFUihzZXRKU1Rlc3RUeXBlZGVmc19idWZmZXJTb3VyY2VBdHRyLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFR5
cGVkZWZzPjo6c2V0PHNldEpTVGVzdFR5cGVkZWZzQnVmZmVyU291cmNlQXR0clNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYnVmZmVyU291cmNl
QXR0ciIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpzZXQ8c2V0
SlNUZXN0VHlwZWRlZnNfYnVmZmVyU291cmNlQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYnVmZmVyU291cmNlQXR0ciIpOwogfQogCi1z
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0VHlwZWRlZnNEb21UaW1lU3RhbXBBdHRyR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RUeXBlZGVmcyYgdGhp
c09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc19kb21UaW1lU3Rh
bXBBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RU
eXBlZGVmcyYgdGhpc09iamVjdCkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtNDc5LDEyICs0NzksMTIgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dFR5cGVkZWZzRG9tVAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExVbnNpZ25lZExvbmdMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBs
LmRvbVRpbWVTdGFtcEF0dHIoKSkpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
VGVzdFR5cGVkZWZzRG9tVGltZVN0YW1wQXR0ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0Nf
REVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0VHlwZWRlZnNfZG9tVGltZVN0YW1wQXR0ciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RUeXBl
ZGVmcz46OmdldDxqc1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHJHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJkb21UaW1lU3RhbXBBdHRyIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RUeXBl
ZGVmcz46OmdldDxqc1Rlc3RUeXBlZGVmc19kb21UaW1lU3RhbXBBdHRyR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAiZG9tVGltZVN0YW1wQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
VHlwZWRlZnNEb21UaW1lU3RhbXBBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1Rlc3RUeXBlZGVmcyYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc19kb21UaW1lU3RhbXBBdHRyU2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RUeXBlZGVmcyYgdGhp
c09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtNDk3LDEyICs0OTcsMTIgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdFR5cGVkZWZzRG9tVAogICAgIHJldHVybiB0cnVlOwogfQogCi1KU0NfREVGSU5FX0NVU1RP
TV9TRVRURVIoc2V0SlNUZXN0VHlwZWRlZnNEb21UaW1lU3RhbXBBdHRyLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rl
c3RUeXBlZGVmc19kb21UaW1lU3RhbXBBdHRyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6c2V0
PHNldEpTVGVzdFR5cGVkZWZzRG9tVGltZVN0YW1wQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZG9tVGltZVN0YW1wQXR0ciIpOworICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpzZXQ8c2V0SlNUZXN0VHlwZWRl
ZnNfZG9tVGltZVN0YW1wQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAiZG9tVGltZVN0YW1wQXR0ciIpOwogfQogCi1zdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNC
b2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZy
YW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OkNs
YXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbl9mdW5jQm9keShKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0
eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpDbGFzc1BhcmFtZXRlciBjYXN0
ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTUx
NywxMiArNTE3LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmMsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rp
b25fZnVuYywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46
OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZ1bmMiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdFR5cGVkZWZzPjo6Y2FsbDxqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX2Z1
bmNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZ1bmMiKTsKIH0KIAot
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBl
RnVuY3Rpb25TZXRTaGFkb3dCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxK
U1Rlc3RUeXBlZGVmcz46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbl9zZXRT
aGFkb3dCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6
Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVm
cz46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtNTUxLDEyICs1NTEsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1By
b3RvdHlwZUZ1bmN0aW9uU2V0U2hhZG93LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX3NldFNoYWRvdywgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90
b3R5cGVGdW5jdGlvblNldFNoYWRvd0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAic2V0U2hhZG93Iik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVm
cz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbl9zZXRTaGFkb3dCb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInNldFNoYWRvdyIpOwogfQogCi1zdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3Bl
cmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0
aW9uX21ldGhvZFdpdGhTZXF1ZW5jZUFyZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3Bl
cmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAg
ICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01NzEsMTIgKzU3MSwxMiBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETFVuc2lnbmVkTG9u
Z0xvbmc+KGltcGwubWV0aG9kV2l0aFNlcXVlbmNlQXJnKFdURk1vdmUoc2VxdWVuY2VBcmcpKSkp
KTsKIH0KIAotSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25fbWV0aG9kV2l0aFNlcXVlbmNlQXJn
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Y2FsbDxq
c1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXJnQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoU2VxdWVuY2VBcmci
KTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Y2FsbDxqc1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhTZXF1ZW5jZUFyZ0JvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aFNlcXVlbmNlQXJnIik7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Byb3Rv
dHlwZUZ1bmN0aW9uTnVsbGFibGVTZXF1ZW5jZUFyZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUg
SURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykK
K3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlw
ZUZ1bmN0aW9uX251bGxhYmxlU2VxdWVuY2VBcmdCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElE
TE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7
CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTkzLDEyICs1OTMs
MTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTZXF1ZW5jZUFy
ZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVG
dW5jdGlvbl9udWxsYWJsZVNlcXVlbmNlQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdFR5cGVkZWZzPjo6Y2FsbDxqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9u
TnVsbGFibGVTZXF1ZW5jZUFyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAibnVsbGFibGVTZXF1ZW5jZUFyZyIpOworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
VHlwZWRlZnM+OjpjYWxsPGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25fbnVsbGFibGVT
ZXF1ZW5jZUFyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibnVsbGFi
bGVTZXF1ZW5jZUFyZyIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblNlcXVlbmNlT2ZOdWxsYWJsZXNBcmdCb2R5
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1l
KiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OkNsYXNz
UGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbl9zZXF1ZW5jZU9mTnVsbGFibGVzQXJnQm9k
eShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpDbGFz
c1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTYxNSwxMiArNjE1LDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVG
dW5jdGlvblNlcXVlbmNlT2ZOdWxsYWJsZXNBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25fc2VxdWVuY2VPZk51bGxhYmxlc0Fy
ZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OmNhbGw8
anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblNlcXVlbmNlT2ZOdWxsYWJsZXNBcmdCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInNlcXVlbmNlT2ZOdWxsYWJsZXNB
cmciKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Y2FsbDxqc1Rl
c3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX3NlcXVlbmNlT2ZOdWxsYWJsZXNBcmdCb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInNlcXVlbmNlT2ZOdWxsYWJsZXNBcmci
KTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZz
UHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVNlcXVlbmNlT2ZOdWxsYWJsZXNBcmdCb2R5KEpTQzo6
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxs
RnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OkNsYXNzUGFyYW1l
dGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbl9udWxsYWJsZVNlcXVlbmNlT2ZOdWxsYWJsZXNBcmdC
b2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZy
YW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OkNs
YXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtNjM3LDEyICs2MzcsMTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlw
ZUZ1bmN0aW9uTnVsbGFibGVTZXF1ZW5jZU9mTnVsbGFibGVzQXJnLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX251bGxhYmxlU2Vx
dWVuY2VPZk51bGxhYmxlc0FyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RUeXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxl
U2VxdWVuY2VPZk51bGxhYmxlc0FyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAibnVsbGFibGVTZXF1ZW5jZU9mTnVsbGFibGVzQXJnIik7CisgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5j
dGlvbl9udWxsYWJsZVNlcXVlbmNlT2ZOdWxsYWJsZXNBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIm51bGxhYmxlU2VxdWVuY2VPZk51bGxhYmxlc0FyZyIpOwogfQog
Ci1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5
cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VPZlVuaW9uc0FyZ0JvZHkoSlNDOjpKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlw
ZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVk
VGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1By
b3RvdHlwZUZ1bmN0aW9uX251bGxhYmxlU2VxdWVuY2VPZlVuaW9uc0FyZ0JvZHkoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Q2xhc3NQYXJhbWV0ZXIg
Y2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC02NTksMTIgKzY1OSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxs
YWJsZVNlcXVlbmNlT2ZVbmlvbnNBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25fbnVsbGFibGVTZXF1ZW5jZU9mVW5pb25zQXJn
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Y2FsbDxq
c1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTZXF1ZW5jZU9mVW5pb25zQXJn
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJudWxsYWJsZVNlcXVlbmNl
T2ZVbmlvbnNBcmciKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6
Y2FsbDxqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX251bGxhYmxlU2VxdWVuY2VPZlVu
aW9uc0FyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibnVsbGFibGVT
ZXF1ZW5jZU9mVW5pb25zQXJnIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uVW5pb25BcmdCb2R5KEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OkNsYXNzUGFyYW1ldGVy
IGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlw
ZWRlZnNQcm90b3R5cGVGdW5jdGlvbl91bmlvbkFyZ0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUg
SURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykK
IHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02ODEsMTIgKzY4
MSwxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25VbmlvbkFyZywgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbl91
bmlvbkFyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46
OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblVuaW9uQXJnQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ1bmlvbkFyZyIpOworICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpjYWxsPGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVu
Y3Rpb25fdW5pb25BcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInVu
aW9uQXJnIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcEJvZHkoSlNDOjpKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlw
ZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVk
VGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1By
b3RvdHlwZUZ1bmN0aW9uX2Z1bmNXaXRoQ2xhbXBCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElE
TE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCiB7
CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNzA2LDEyICs3MDYs
MTIgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcCwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlv
bl9mdW5jV2l0aENsYW1wLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFR5
cGVkZWZzPjo6Y2FsbDxqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFt
cEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZnVuY1dpdGhDbGFtcCIp
OworICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpjYWxsPGpzVGVzdFR5
cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25fZnVuY1dpdGhDbGFtcEJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAiZnVuY1dpdGhDbGFtcCIpOwogfQogCi1zdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNX
aXRoQ2xhbXBJblR5cGVkZWZCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxK
U1Rlc3RUeXBlZGVmcz46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCitzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbl9mdW5j
V2l0aENsYW1wSW5UeXBlZGVmQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248
SlNUZXN0VHlwZWRlZnM+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8m
IHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTcyOCwxMiArNzI4LDEyIEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNXaXRoQ2xhbXBJblR5cGVkZWYsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25f
ZnVuY1dpdGhDbGFtcEluVHlwZWRlZiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RUeXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNX
aXRoQ2xhbXBJblR5cGVkZWZCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
ImZ1bmNXaXRoQ2xhbXBJblR5cGVkZWYiKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dFR5cGVkZWZzPjo6Y2FsbDxqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX2Z1bmNXaXRo
Q2xhbXBJblR5cGVkZWZCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZ1
bmNXaXRoQ2xhbXBJblR5cGVkZWYiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25Qb2ludEZ1bmN0aW9uQm9keShK
U0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSog
Y2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpDbGFzc1Bh
cmFtZXRlciBjYXN0ZWRUaGlzKQorc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25fcG9pbnRGdW5jdGlvbkJvZHkoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Q2xhc3NQYXJhbWV0ZXIg
Y2FzdGVkVGhpcykKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC03NDMsMTIgKzc0MywxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0
b0pTPElETEludGVyZmFjZTxTVkdQb2ludD4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVk
VGhpcy0+Z2xvYmFsT2JqZWN0KCksIGltcGwucG9pbnRGdW5jdGlvbigpKSkpOwogfQogCi1KU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblBvaW50
RnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJv
dG90eXBlRnVuY3Rpb25fcG9pbnRGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RUeXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlv
blBvaW50RnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInBv
aW50RnVuY3Rpb24iKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6
Y2FsbDxqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX3BvaW50RnVuY3Rpb25Cb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInBvaW50RnVuY3Rpb24iKTsKIH0KIAot
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBl
RnVuY3Rpb25TdHJpbmdTZXF1ZW5jZUZ1bmN0aW9uQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJ
RExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQor
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBl
RnVuY3Rpb25fc3RyaW5nU2VxdWVuY2VGdW5jdGlvbkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUg
SURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykK
IHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC03NjMsMTIgKzc2
MywxMiBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETFNlcXVl
bmNlPElETERPTVN0cmluZz4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xv
YmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc3RyaW5nU2VxdWVuY2VGdW5jdGlvbihXVEZN
b3ZlKHZhbHVlcykpKSkpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlw
ZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ1NlcXVlbmNlRnVuY3Rpb24sIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25fc3RyaW5n
U2VxdWVuY2VGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RU
eXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ1NlcXVl
bmNlRnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInN0cmlu
Z1NlcXVlbmNlRnVuY3Rpb24iKTsKKyAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVk
ZWZzPjo6Y2FsbDxqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX3N0cmluZ1NlcXVlbmNl
RnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInN0cmluZ1Nl
cXVlbmNlRnVuY3Rpb24iKTsKIH0KIAotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdTZXF1ZW5jZUZ1bmN0aW9uMkJv
ZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Q2xh
c3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX3N0cmluZ1NlcXVlbmNlRnVuY3Rpb24y
Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxG
cmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpD
bGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTc4MywxMiArNzgzLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKHRvSlM8SURMU2VxdWVuY2U8SURMRE9NU3RyaW5nPj4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5z
dHJpbmdTZXF1ZW5jZUZ1bmN0aW9uMihXVEZNb3ZlKHZhbHVlcykpKSkpOwogfQogCi1KU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ1Nl
cXVlbmNlRnVuY3Rpb24yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBl
ZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX3N0cmluZ1NlcXVlbmNlRnVuY3Rpb24yLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Y2FsbDxqc1Rlc3RUeXBlZGVm
c1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5nU2VxdWVuY2VGdW5jdGlvbjJCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInN0cmluZ1NlcXVlbmNlRnVuY3Rpb24yIik7CisgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQ
cm90b3R5cGVGdW5jdGlvbl9zdHJpbmdTZXF1ZW5jZUZ1bmN0aW9uMkJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAic3RyaW5nU2VxdWVuY2VGdW5jdGlvbjIiKTsKIH0KIAot
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBl
RnVuY3Rpb25DYWxsV2l0aFNlcXVlbmNlVGhhdFJlcXVpcmVzSW5jbHVkZUJvZHkoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Q2xhc3NQYXJhbWV0ZXIg
Y2FzdGVkVGhpcykKK3N0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBl
ZGVmc1Byb3RvdHlwZUZ1bmN0aW9uX2NhbGxXaXRoU2VxdWVuY2VUaGF0UmVxdWlyZXNJbmNsdWRl
Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxG
cmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpD
bGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTgwMywxMiArODAzLDEyIEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKHRvSlM8SURMQm9vbGVhbj4oaW1wbC5jYWxsV2l0aFNlcXVlbmNlVGhhdFJl
cXVpcmVzSW5jbHVkZShXVEZNb3ZlKHNlcXVlbmNlQXJnKSkpKSk7CiB9CiAKLUpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uQ2FsbFdpdGhTZXF1
ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25fY2FsbFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJl
c0luY2x1ZGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+
OjpjYWxsPGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25DYWxsV2l0aFNlcXVlbmNlVGhh
dFJlcXVpcmVzSW5jbHVkZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
Y2FsbFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUiKTsKKyAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Y2FsbDxqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0
aW9uX2NhbGxXaXRoU2VxdWVuY2VUaGF0UmVxdWlyZXNJbmNsdWRlQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJjYWxsV2l0aFNlcXVlbmNlVGhhdFJlcXVpcmVzSW5jbHVk
ZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRl
ZnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb25Cb2R5KEpTQzo6SlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5
cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OkNsYXNzUGFyYW1ldGVyIGNhc3Rl
ZFRoaXMpCitzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQ
cm90b3R5cGVGdW5jdGlvbl9tZXRob2RXaXRoRXhjZXB0aW9uQm9keShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBl
bmFtZSBJRExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRU
aGlzKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTgyMCw5
ICs4MjAsOSBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhj
ZXB0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3Rv
dHlwZUZ1bmN0aW9uX21ldGhvZFdpdGhFeGNlcHRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpjYWxsPGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJtZXRob2RXaXRoRXhjZXB0aW9uIik7CisgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RUeXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbl9tZXRo
b2RXaXRoRXhjZXB0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJt
ZXRob2RXaXRoRXhjZXB0aW9uIik7CiB9CiAKIEpTQzo6SXNvU3Vic3BhY2UqIEpTVGVzdFR5cGVk
ZWZzOjpzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNXb3JrZXJHbG9iYWxTY29wZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTV29ya2VyR2xv
YmFsU2NvcGUuY3BwCShyZXZpc2lvbiAyNjg1NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNXb3JrZXJHbG9iYWxTY29wZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUzLDE4ICs1MywxOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBKU0NfREVDTEFSRV9D
VVNUT01fR0VUVEVSKGpzV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik7CiBKU0NfREVDTEFS
RV9DVVNUT01fU0VUVEVSKHNldEpTV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik7Ci1KU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzV29ya2VyR2xvYmFsU2NvcGVFeHBvc2VkVG9Xb3JrZXJB
bmRXaW5kb3dDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNldEpTV29y
a2VyR2xvYmFsU2NvcGVFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3Rvcik7Ci1KU0Nf
REVDTEFSRV9DVVNUT01fR0VUVEVSKGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0RGVmYXVsdFRvSlNP
TkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3Nl
ZENvbnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNXb3JrZXJHbG9iYWxT
Y29wZVRlc3ROb2RlQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRK
U1dvcmtlckdsb2JhbFNjb3BlVGVzdE5vZGVDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNU
T01fR0VUVEVSKGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0T2JqZWN0Q29uc3RydWN0b3IpOwotSlND
X0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdE9iamVjdENv
bnN0cnVjdG9yKTsKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNXb3JrZXJHbG9iYWxTY29w
ZVRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNU
T01fU0VUVEVSKHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50
Q29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1dvcmtlckdsb2JhbFNj
b3BlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fU0VU
VEVSKHNldEpTV29ya2VyR2xvYmFsU2NvcGVXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKTsK
K0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNXb3JrZXJHbG9iYWxTY29wZV9FeHBvc2VkVG9X
b3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fU0VUVEVSKHNl
dEpTV29ya2VyR2xvYmFsU2NvcGVfRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3Ip
OworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1dvcmtlckdsb2JhbFNjb3BlX1Rlc3REZWZh
dWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNU
T01fU0VUVEVSKHNldEpTV29ya2VyR2xvYmFsU2NvcGVfVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJl
ZEJ5RXhwb3NlZENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNXb3Jr
ZXJHbG9iYWxTY29wZV9UZXN0Tm9kZUNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9T
RVRURVIoc2V0SlNXb3JrZXJHbG9iYWxTY29wZV9UZXN0Tm9kZUNvbnN0cnVjdG9yKTsKK0pTQ19E
RUNMQVJFX0NVU1RPTV9HRVRURVIoanNXb3JrZXJHbG9iYWxTY29wZV9UZXN0T2JqZWN0Q29uc3Ry
dWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1dvcmtlckdsb2JhbFNjb3Bl
X1Rlc3RPYmplY3RDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzV29y
a2VyR2xvYmFsU2NvcGVfVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKTsKK0pT
Q19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNXb3JrZXJHbG9iYWxTY29wZV9UZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihq
c1dvcmtlckdsb2JhbFNjb3BlX1dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOworSlNDX0RF
Q0xBUkVfQ1VTVE9NX1NFVFRFUihzZXRKU1dvcmtlckdsb2JhbFNjb3BlX1dvcmtlckdsb2JhbFNj
b3BlQ29uc3RydWN0b3IpOwogCiB1c2luZyBKU1dvcmtlckdsb2JhbFNjb3BlRE9NQ29uc3RydWN0
b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1dvcmtlckdsb2JhbFNjb3Bl
PjsKIApAQCAtOTQsMTIgKzk0LDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJ
bmRleCBKU1cKIAogc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTV29ya2VyR2xvYmFsU2Nv
cGVUYWJsZVZhbHVlc1tdID0KIHsKLSAgICB7ICJFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3ciLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzV29ya2VyR2xvYmFsU2NvcGVFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1
Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KHNldEpTV29ya2VyR2xvYmFsU2NvcGVFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1
Y3RvcikgfSB9LAotICAgIHsgIlRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBv
c2VkQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPihzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0
ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiVGVzdE5vZGUiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0
aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNXb3JrZXJHbG9iYWxT
Y29wZVRlc3ROb2RlQ29uc3RydWN0b3IpIH0gfSwKLSAgICB7ICJUZXN0T2JqZWN0Iiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1dvcmtlckdsb2JhbFNjb3BlVGVzdE9iamVjdENvbnN0cnVjdG9yKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNXb3JrZXJHbG9i
YWxTY29wZVRlc3RPYmplY3RDb25zdHJ1Y3RvcikgfSB9LAotICAgIHsgIlRlc3RQcm9taXNlUmVq
ZWN0aW9uRXZlbnQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJlamVj
dGlvbkV2ZW50Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdFByb21pc2VSZWpl
Y3Rpb25FdmVudENvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiV29ya2VyR2xvYmFsU2NvcGUiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzV29ya2VyR2xvYmFsU2NvcGVXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKSwg
KGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0
SlNXb3JrZXJHbG9iYWxTY29wZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IpIH0gfSwKKyAg
ICB7ICJFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3ciLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzV29ya2VyR2xvYmFsU2Nv
cGVfRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1dvcmtlckdsb2JhbFNj
b3BlX0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKSB9IH0sCisgICAgeyAiVGVz
dERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNXb3JrZXJHbG9iYWxT
Y29wZV9UZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IpLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1dv
cmtlckdsb2JhbFNjb3BlX1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1
Y3RvcikgfSB9LAorICAgIHsgIlRlc3ROb2RlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1dvcmtlckdsb2JhbFNjb3Bl
X1Rlc3ROb2RlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1dvcmtlckdsb2JhbFNjb3BlX1Rlc3ROb2RlQ29uc3Ry
dWN0b3IpIH0gfSwKKyAgICB7ICJUZXN0T2JqZWN0Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1dvcmtlckdsb2JhbFNj
b3BlX1Rlc3RPYmplY3RDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTV29ya2VyR2xvYmFsU2NvcGVfVGVzdE9iamVj
dENvbnN0cnVjdG9yKSB9IH0sCisgICAgeyAiVGVzdFByb21pc2VSZWplY3Rpb25FdmVudCIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNXb3JrZXJHbG9iYWxTY29wZV9UZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3Ry
dWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1dvcmtlckdsb2JhbFNjb3BlX1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25z
dHJ1Y3RvcikgfSB9LAorICAgIHsgIldvcmtlckdsb2JhbFNjb3BlIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1dvcmtl
ckdsb2JhbFNjb3BlX1dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1dvcmtlckdsb2Jh
bFNjb3BlX1dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IpIH0gfSwKIH07CiAKIHN0YXRpYyBj
b25zdCBIYXNoVGFibGUgSlNXb3JrZXJHbG9iYWxTY29wZVRhYmxlID0geyA2LCAxNSwgdHJ1ZSwg
SlNXb3JrZXJHbG9iYWxTY29wZTo6aW5mbygpLCBKU1dvcmtlckdsb2JhbFNjb3BlVGFibGVWYWx1
ZXMsIEpTV29ya2VyR2xvYmFsU2NvcGVUYWJsZUluZGV4IH07CkBAIC0xOTgsMTQyICsxOTgsMTQy
IEBAIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1dvcmtlckdsb2IKICAgICByZXR1cm4g
cHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3JH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTV29ya2VyR2xvYmFs
U2NvcGUmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNXb3JrZXJHbG9iYWxT
Y29wZV9FeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNXb3JrZXJHbG9iYWxTY29wZSYgdGhpc09iamVj
dCkKIHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgcmV0dXJu
IEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUpT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2Vy
QW5kV2luZG93Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKGpzV29ya2VyR2xvYmFsU2NvcGVfRXhwb3NlZFRvV29ya2VyQW5kV2luZG93
Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNXb3JrZXJHbG9iYWxTY29wZT46OmdldDxqc1dvcmtlckdsb2JhbFNjb3BlRXhwb3Nl
ZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3ciKTsKKyAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTV29ya2VyR2xvYmFsU2NvcGU+OjpnZXQ8anNXb3JrZXJHbG9iYWxTY29wZV9F
eHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIkV4cG9zZWRUb1dvcmtlckFuZFdpbmRvdyIpOwogfQogCi1zdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNXb3JrZXJHbG9iYWxTY29wZUV4cG9zZWRUb1dvcmtlckFuZFdp
bmRvd0NvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1dvcmtlckdsb2JhbFNjb3BlJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGlj
IGlubGluZSBib29sIHNldEpTV29ya2VyR2xvYmFsU2NvcGVfRXhwb3NlZFRvV29ya2VyQW5kV2lu
ZG93Q29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTV29ya2VyR2xvYmFsU2NvcGUmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBTaGFk
b3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rvci4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiRXhwb3NlZFRvV29ya2VyQW5kV2luZG93IiksIHN0cmxlbigiRXhwb3NlZFRv
V29ya2VyQW5kV2luZG93IikpLCB2YWx1ZSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNU
T01fU0VUVEVSKHNldEpTV29ya2VyR2xvYmFsU2NvcGVfRXhwb3NlZFRvV29ya2VyQW5kV2luZG93
Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxTY29wZT46OnNldDxzZXRKU1dvcmtl
ckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3JTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIkV4cG9zZWRUb1dv
cmtlckFuZFdpbmRvdyIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxT
Y29wZT46OnNldDxzZXRKU1dvcmtlckdsb2JhbFNjb3BlX0V4cG9zZWRUb1dvcmtlckFuZFdpbmRv
d0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3ciKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlF
eHBvc2VkQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTV29ya2VyR2xvYmFsU2NvcGUmIHRoaXNPYmplY3QpCitzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNXb3JrZXJHbG9iYWxTY29wZV9UZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2Vk
Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
V29ya2VyR2xvYmFsU2NvcGUmIHRoaXNPYmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIHJldHVybiBKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRC
eUV4cG9zZWQ6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
LCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2Vk
Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQorSlNDX0RFRklORV9DVVNUT01fR0VU
VEVSKGpzV29ya2VyR2xvYmFsU2NvcGVfVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3Nl
ZENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTV29ya2VyR2xvYmFsU2NvcGU+OjpnZXQ8anNXb3JrZXJHbG9iYWxTY29wZVRlc3RE
ZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9z
ZWQiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTV29ya2VyR2xvYmFsU2NvcGU+OjpnZXQ8
anNXb3JrZXJHbG9iYWxTY29wZV9UZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29u
c3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RGVm
YXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkIik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENv
bnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1dv
cmtlckdsb2JhbFNjb3BlJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQorc3RhdGljIGlubGlu
ZSBib29sIHNldEpTV29ya2VyR2xvYmFsU2NvcGVfVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5
RXhwb3NlZENvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1dvcmtlckdsb2JhbFNjb3BlJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewog
ICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgLy8g
U2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IuCiAgICAgcmV0dXJuIHRoaXNPYmplY3Qu
cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0
PGNvbnN0IExDaGFyKj4oIlRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQiKSwgc3Ry
bGVuKCJUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkIikpLCB2YWx1ZSk7CiB9CiAK
LUpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdERlZmF1
bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1dvcmtlckds
b2JhbFNjb3BlX1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1dvcmtlckdsb2JhbFNjb3BlPjo6c2V0PHNldEpTV29ya2VyR2xvYmFsU2NvcGVU
ZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3REZWZhdWx0VG9K
U09ORmlsdGVyZWRCeUV4cG9zZWQiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTV29ya2Vy
R2xvYmFsU2NvcGU+OjpzZXQ8c2V0SlNXb3JrZXJHbG9iYWxTY29wZV9UZXN0RGVmYXVsdFRvSlNP
TkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4
cG9zZWQiKTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzV29ya2VyR2xvYmFsU2NvcGVU
ZXN0Tm9kZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU1dvcmtlckdsb2JhbFNjb3BlJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzV29ya2VyR2xvYmFsU2NvcGVfVGVzdE5vZGVDb25zdHJ1Y3RvckdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNXb3JrZXJHbG9iYWxTY29wZSYgdGhpc09i
amVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgcmV0
dXJuIEpTVGVzdE5vZGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotSlNDX0RFRklORV9DVVNU
T01fR0VUVEVSKGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNvbnN0cnVjdG9yLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1dvcmtlckdsb2JhbFNj
b3BlX1Rlc3ROb2RlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpKQogewotICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxTY29wZT46OmdldDxqc1dvcmtlckdsb2Jh
bFNjb3BlVGVzdE5vZGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgIlRlc3ROb2RlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1dvcmtlckds
b2JhbFNjb3BlPjo6Z2V0PGpzV29ya2VyR2xvYmFsU2NvcGVfVGVzdE5vZGVDb25zdHJ1Y3Rvckdl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROb2RlIik7CiB9CiAK
LXN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdE5vZGVDb25zdHJ1
Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNXb3JrZXJH
bG9iYWxTY29wZSYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1dvcmtlckdsb2JhbFNjb3BlX1Rlc3ROb2RlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTV29ya2VyR2xvYmFsU2NvcGUmIHRoaXNP
YmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3Rv
ci4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5vZGUiKSwgc3Ry
bGVuKCJUZXN0Tm9kZSIpKSwgdmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9TRVRURVIo
c2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3ROb2RlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQorSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTV29y
a2VyR2xvYmFsU2NvcGVfVGVzdE5vZGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1dvcmtlckdsb2Jh
bFNjb3BlPjo6c2V0PHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNvbnN0cnVjdG9yU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0
Tm9kZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxTY29wZT46OnNl
dDxzZXRKU1dvcmtlckdsb2JhbFNjb3BlX1Rlc3ROb2RlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROb2RlIik7CiB9
CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1dvcmtlckdsb2JhbFNjb3BlVGVzdE9iamVjdENv
bnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1dv
cmtlckdsb2JhbFNjb3BlJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzV29y
a2VyR2xvYmFsU2NvcGVfVGVzdE9iamVjdENvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1dvcmtlckdsb2JhbFNjb3BlJiB0aGlzT2JqZWN0KQog
ewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gSlNU
ZXN0T2JqOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRF
Uihqc1dvcmtlckdsb2JhbFNjb3BlVGVzdE9iamVjdENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1dvcmtlckdsb2JhbFNjb3BlX1Rl
c3RPYmplY3RDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1dvcmtlckdsb2JhbFNjb3BlPjo6Z2V0PGpzV29ya2VyR2xvYmFsU2Nv
cGVUZXN0T2JqZWN0Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJUZXN0T2JqZWN0Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1dvcmtlckds
b2JhbFNjb3BlPjo6Z2V0PGpzV29ya2VyR2xvYmFsU2NvcGVfVGVzdE9iamVjdENvbnN0cnVjdG9y
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE9iamVjdCIpOwog
fQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3RPYmplY3RD
b25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNX
b3JrZXJHbG9iYWxTY29wZSYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1dvcmtlckdsb2JhbFNjb3BlX1Rlc3RPYmplY3RDb25zdHJ1Y3RvclNldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNXb3JrZXJHbG9iYWxTY29w
ZSYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNv
bnN0cnVjdG9yLgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0T2Jq
ZWN0IiksIHN0cmxlbigiVGVzdE9iamVjdCIpKSwgdmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0NV
U1RPTV9TRVRURVIoc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3RPYmplY3RDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNXb3JrZXJHbG9iYWxTY29wZV9UZXN0T2JqZWN0Q29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNXb3JrZXJHbG9iYWxTY29wZT46OnNldDxzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdE9i
amVjdENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJUZXN0T2JqZWN0Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1dv
cmtlckdsb2JhbFNjb3BlPjo6c2V0PHNldEpTV29ya2VyR2xvYmFsU2NvcGVfVGVzdE9iamVjdENv
bnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJUZXN0T2JqZWN0Iik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1dvcmtl
ckdsb2JhbFNjb3BlVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1dvcmtlckdsb2JhbFNjb3BlJiB0
aGlzT2JqZWN0KQorc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzV29ya2VyR2xvYmFsU2NvcGVfVGVz
dFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1dvcmtlckdsb2JhbFNjb3BlJiB0aGlzT2JqZWN0KQogewog
ICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICByZXR1cm4gSlNUZXN0
UHJvbWlzZVJlamVjdGlvbkV2ZW50OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUpTQ19ERUZJ
TkVfQ1VTVE9NX0dFVFRFUihqc1dvcmtlckdsb2JhbFNjb3BlVGVzdFByb21pc2VSZWplY3Rpb25F
dmVudENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1dvcmtlckdsb2JhbFNjb3BlX1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25z
dHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1dvcmtlckdsb2JhbFNjb3BlPjo6Z2V0PGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Iik7CisgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1dvcmtlckdsb2JhbFNjb3BlPjo6Z2V0PGpzV29ya2VyR2xvYmFsU2NvcGVfVGVz
dFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAiVGVzdFByb21pc2VSZWplY3Rpb25FdmVudCIpOwogfQogCi1zdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnRDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNXb3JrZXJHbG9iYWxTY29wZSYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1dvcmtlckdsb2JhbFNjb3BlX1Rlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnRDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNXb3JrZXJHbG9iYWxTY29wZSYgdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAg
ICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIC8vIFNo
YWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yLgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50IiksIHN0cmxlbigiVGVzdFBy
b21pc2VSZWplY3Rpb25FdmVudCIpKSwgdmFsdWUpOwogfQogCi1KU0NfREVGSU5FX0NVU1RPTV9T
RVRURVIoc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25z
dHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkpCitKU0NfREVGSU5F
X0NVU1RPTV9TRVRURVIoc2V0SlNXb3JrZXJHbG9iYWxTY29wZV9UZXN0UHJvbWlzZVJlamVjdGlv
bkV2ZW50Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpKQog
ewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxTY29wZT46OnNldDxzZXRK
U1dvcmtlckdsb2JhbFNjb3BlVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0
UHJvbWlzZVJlamVjdGlvbkV2ZW50Iik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1dvcmtl
ckdsb2JhbFNjb3BlPjo6c2V0PHNldEpTV29ya2VyR2xvYmFsU2NvcGVfVGVzdFByb21pc2VSZWpl
Y3Rpb25FdmVudENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Iik7CiB9CiAKLXN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1dvcmtlckdsb2JhbFNjb3BlV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNX
b3JrZXJHbG9iYWxTY29wZSYgdGhpc09iamVjdCkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1dv
cmtlckdsb2JhbFNjb3BlX1dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTV29ya2VyR2xvYmFsU2NvcGUmIHRoaXNP
YmplY3QpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIHJl
dHVybiBKU1dvcmtlckdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUpTQ19E
RUZJTkVfQ1VTVE9NX0dFVFRFUihqc1dvcmtlckdsb2JhbFNjb3BlV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCitKU0NfREVGSU5FX0NVU1RPTV9HRVRU
RVIoanNXb3JrZXJHbG9iYWxTY29wZV9Xb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTV29ya2VyR2xv
YmFsU2NvcGU+OjpnZXQ8anNXb3JrZXJHbG9iYWxTY29wZVdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJXb3JrZXJHbG9i
YWxTY29wZSIpOworICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxTY29wZT46
OmdldDxqc1dvcmtlckdsb2JhbFNjb3BlX1dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJXb3JrZXJHbG9iYWxTY29wZSIp
OwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNXb3JrZXJHbG9iYWxTY29wZVdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTV29ya2VyR2xvYmFsU2NvcGUmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNXb3JrZXJHbG9iYWxTY29wZV9Xb3JrZXJHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1dvcmtlckdsb2JhbFNjb3BlJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1
dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93
aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IuCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGly
ZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oIldvcmtlckdsb2JhbFNjb3BlIiksIHN0cmxlbigiV29ya2VyR2xvYmFsU2NvcGUi
KSksIHZhbHVlKTsKIH0KIAotSlNDX0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTV29ya2VyR2xv
YmFsU2NvcGVXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKSkKK0pTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1dvcmtlckds
b2JhbFNjb3BlX1dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJH
bG9iYWxTY29wZT46OnNldDxzZXRKU1dvcmtlckdsb2JhbFNjb3BlV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiV29ya2VyR2xvYmFsU2NvcGUiKTsKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
V29ya2VyR2xvYmFsU2NvcGU+OjpzZXQ8c2V0SlNXb3JrZXJHbG9iYWxTY29wZV9Xb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJXb3JrZXJHbG9iYWxTY29wZSIpOwogfQogCiBKU0M6Oklzb1N1YnNw
YWNlKiBKU1dvcmtlckdsb2JhbFNjb3BlOjpzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0pCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNXb3JrbGV0R2xv
YmFsU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1dvcmtsZXRHbG9iYWxTY29wZS5jcHAJKHJldmlzaW9uIDI2ODU0NykKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtsZXRHbG9iYWxT
Y29wZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDggKzQ4LDggQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIAogSlNDX0RFQ0xBUkVfQ1VTVE9NX0dFVFRFUihqc1dvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yKTsKIEpTQ19ERUNMQVJFX0NVU1RPTV9TRVRURVIoc2V0SlNXb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3Rvcik7Ci1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKGpzV29ya2xldEds
b2JhbFNjb3BlV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOwotSlNDX0RFQ0xBUkVfQ1VT
VE9NX1NFVFRFUihzZXRKU1dvcmtsZXRHbG9iYWxTY29wZVdvcmtsZXRHbG9iYWxTY29wZUNvbnN0
cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIoanNXb3JrbGV0R2xvYmFsU2NvcGVf
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfQ1VTVE9NX1NFVFRF
UihzZXRKU1dvcmtsZXRHbG9iYWxTY29wZV9Xb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik7
CiAKIHVzaW5nIEpTV29ya2xldEdsb2JhbFNjb3BlRE9NQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0
cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1dvcmtsZXRHbG9iYWxTY29wZT47CiAKQEAgLTYzLDcg
KzYzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVwogCiBzdGF0
aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNXb3JrbGV0R2xvYmFsU2NvcGVUYWJsZVZhbHVlc1td
ID0KIHsKLSAgICB7ICJXb3JrbGV0R2xvYmFsU2NvcGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzV29ya2xldEdsb2Jh
bFNjb3BlV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1dvcmtsZXRHbG9iYWxTY29w
ZVdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKSB9IH0sCisgICAgeyAiV29ya2xldEdsb2Jh
bFNjb3BlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1dvcmtsZXRHbG9iYWxTY29wZV9Xb3JrbGV0R2xvYmFsU2NvcGVD
b25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KHNldEpTV29ya2xldEdsb2JhbFNjb3BlX1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0
cnVjdG9yKSB9IH0sCiB9OwogCiBzdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTV29ya2xldEdsb2Jh
bFNjb3BlVGFibGUgPSB7IDEsIDEsIHRydWUsIEpTV29ya2xldEdsb2JhbFNjb3BlOjppbmZvKCks
IEpTV29ya2xldEdsb2JhbFNjb3BlVGFibGVWYWx1ZXMsIEpTV29ya2xldEdsb2JhbFNjb3BlVGFi
bGVJbmRleCB9OwpAQCAtMTYyLDI3ICsxNjIsMjcgQEAgSlNDX0RFRklORV9DVVNUT01fU0VUVEVS
KHNldEpTV29ya2xldEdsbwogICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUp
KTsKIH0KIAotc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzV29ya2xldEdsb2JhbFNjb3BlV29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTV29ya2xldEdsb2JhbFNjb3BlJiB0aGlzT2JqZWN0KQorc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzV29ya2xldEdsb2JhbFNjb3BlX1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1dvcmtsZXRH
bG9iYWxTY29wZSYgdGhpc09iamVjdCkKIHsKICAgICBVTlVTRURfUEFSQU0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgcmV0dXJuIEpTV29ya2xldEdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSk7CiB9CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1dvcmtsZXRHbG9iYWxTY29w
ZVdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKSkKK0pT
Q19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc1dvcmtsZXRHbG9iYWxTY29wZV9Xb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkpCiB7Ci0gICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1dvcmtsZXRHbG9iYWxTY29wZT46OmdldDxqc1dvcmtsZXRHbG9iYWxTY29w
ZVdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiV29ya2xldEdsb2JhbFNjb3BlIik7CisgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1dvcmtsZXRHbG9iYWxTY29wZT46OmdldDxqc1dvcmtsZXRHbG9iYWxTY29wZV9Xb3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNXb3JrbGV0R2xvYmFsU2NvcGVXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNXb3JrbGV0R2xvYmFsU2Nv
cGUmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNX
b3JrbGV0R2xvYmFsU2NvcGVfV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JTZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTV29ya2xldEdsb2JhbFNjb3BlJiB0
aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3Ry
dWN0b3IuCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIldvcmtsZXRHbG9i
YWxTY29wZSIpLCBzdHJsZW4oIldvcmtsZXRHbG9iYWxTY29wZSIpKSwgdmFsdWUpOwogfQogCi1K
U0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNXb3JrbGV0R2xvYmFsU2NvcGVXb3JrbGV0R2xv
YmFsU2NvcGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkp
CitKU0NfREVGSU5FX0NVU1RPTV9TRVRURVIoc2V0SlNXb3JrbGV0R2xvYmFsU2NvcGVfV29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrbGV0R2xvYmFsU2NvcGU+Ojpz
ZXQ8c2V0SlNXb3JrbGV0R2xvYmFsU2NvcGVXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiV29y
a2xldEdsb2JhbFNjb3BlIik7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1dvcmtsZXRHbG9i
YWxTY29wZT46OnNldDxzZXRKU1dvcmtsZXRHbG9iYWxTY29wZV9Xb3JrbGV0R2xvYmFsU2NvcGVD
b25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiV29ya2xldEdsb2JhbFNjb3BlIik7CiB9CiAKIEpTQzo6SXNvU3Vic3BhY2UqIEpT
V29ya2xldEdsb2JhbFNjb3BlOjpzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0pCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uY3BwCShyZXZpc2lvbiAyNjg1
NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI2OCw0OCArMjY4LDggQEAgc3RhdGljIENTU1Byb3BlcnR5SW5mbyBwcm9w
ZXJ0eUluZm9Gcm9tSgogCiB9CiAKLUNTU1Byb3BlcnR5SUQgQ1NTU3R5bGVEZWNsYXJhdGlvbjo6
Z2V0Q1NTUHJvcGVydHlJREZyb21KYXZhU2NyaXB0UHJvcGVydHlOYW1lKGNvbnN0IEF0b21TdHJp
bmcmIHByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gcHJvcGVydHlJbmZvRnJvbUphdmFTY3Jp
cHRDU1NQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lLCBudWxscHRyKS5wcm9wZXJ0eUlEOwotfQot
Ci1PcHRpb25hbDxWYXJpYW50PFN0cmluZywgZG91YmxlPj4gQ1NTU3R5bGVEZWNsYXJhdGlvbjo6
bmFtZWRJdGVtKGNvbnN0IEF0b21TdHJpbmcmIHByb3BlcnR5TmFtZSkKK0V4Y2VwdGlvbk9yPHZv
aWQ+IENTU1N0eWxlRGVjbGFyYXRpb246OnNldFByb3BlcnR5VmFsdWVJbnRlcm5hbChDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5SUQsIFN0cmluZyB2YWx1ZSkKIHsKLSAgICBhdXRvKiBzZXR0aW5ncyA9
IHBhcmVudEVsZW1lbnQoKSA/ICZwYXJlbnRFbGVtZW50KCktPmRvY3VtZW50KCkuc2V0dGluZ3Mo
KSA6IG51bGxwdHI7Ci0gICAgYXV0byBwcm9wZXJ0eUluZm8gPSBwcm9wZXJ0eUluZm9Gcm9tSmF2
YVNjcmlwdENTU1Byb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUsIHNldHRpbmdzKTsKLSAgICBpZiAo
IXByb3BlcnR5SW5mby5wcm9wZXJ0eUlEKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owot
Ci0gICAgYXV0byB2YWx1ZSA9IGdldFByb3BlcnR5Q1NTVmFsdWVJbnRlcm5hbChwcm9wZXJ0eUlu
Zm8ucHJvcGVydHlJRCk7Ci0gICAgaWYgKCF2YWx1ZSkgewotICAgICAgICAvLyBJZiB0aGUgcHJv
cGVydHkgaXMgYSBzaG9ydGhhbmQgcHJvcGVydHkgKHN1Y2ggYXMgInBhZGRpbmciKSwgaXQgY2Fu
IG9ubHkgYmUgYWNjZXNzZWQgdXNpbmcgZ2V0UHJvcGVydHlWYWx1ZS4KLSAgICAgICAgcmV0dXJu
IFZhcmlhbnQ8U3RyaW5nLCBkb3VibGU+IHsgZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsKHByb3Bl
cnR5SW5mby5wcm9wZXJ0eUlEKSB9OwotICAgIH0KLSAgICAKLSAgICBpZiAocHJvcGVydHlJbmZv
LmhhZFBpeGVsT3JQb3NQcmVmaXggJiYgaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkpIHsK
LSAgICAgICAgLy8gQ2FsbCB0aGlzIHZlcnNpb24gb2YgdGhlIGdldHRlciBzbyB0aGF0LCBlLmcu
LCBwaXhlbFRvcCByZXR1cm5zIHRvcCBhcyBhIG51bWJlcgotICAgICAgICAvLyBpbiBwaXhlbCB1
bml0cyBhbmQgcG9zVG9wIHNob3VsZCBkb2VzIHRoZSBzYW1lIF9pZl8gdGhpcyBpcyBhIHBvc2l0
aW9uZWQgZWxlbWVudC4KLSAgICAgICAgLy8gRklYTUU6IElmIG5vdCBhIHBvc2l0aW9uZWQgZWxl
bWVudCwgTVNJRSBkb2N1bWVudGF0aW9uIHNheXMgcG9zVG9wIHNob3VsZCByZXR1cm4gMDsgdGhp
cyBydWxlIGlzIG5vdCBpbXBsZW1lbnRlZC4KLSAgICAgICAgcmV0dXJuIFZhcmlhbnQ8U3RyaW5n
LCBkb3VibGU+IHsgZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkuZmxvYXRWYWx1
ZShDU1NVbml0VHlwZTo6Q1NTX1BYKSB9OwotICAgIH0KLQotICAgIHJldHVybiBWYXJpYW50PFN0
cmluZywgZG91YmxlPiB7IHZhbHVlLT5jc3NUZXh0KCkgfTsKLX0KLQotRXhjZXB0aW9uT3I8dm9p
ZD4gQ1NTU3R5bGVEZWNsYXJhdGlvbjo6c2V0TmFtZWRJdGVtKGNvbnN0IEF0b21TdHJpbmcmIHBy
b3BlcnR5TmFtZSwgU3RyaW5nIHZhbHVlLCBib29sJiBwcm9wZXJ0eVN1cHBvcnRlZCkKLXsKLSAg
ICBhdXRvKiBzZXR0aW5ncyA9IHBhcmVudEVsZW1lbnQoKSA/ICZwYXJlbnRFbGVtZW50KCktPmRv
Y3VtZW50KCkuc2V0dGluZ3MoKSA6IG51bGxwdHI7Ci0gICAgYXV0byBwcm9wZXJ0eUluZm8gPSBw
cm9wZXJ0eUluZm9Gcm9tSmF2YVNjcmlwdENTU1Byb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUsIHNl
dHRpbmdzKTsKLSAgICBpZiAoIXByb3BlcnR5SW5mby5wcm9wZXJ0eUlEKSB7Ci0gICAgICAgIHBy
b3BlcnR5U3VwcG9ydGVkID0gZmFsc2U7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotCi0g
ICAgcHJvcGVydHlTdXBwb3J0ZWQgPSB0cnVlOwotCi0gICAgaWYgKHByb3BlcnR5SW5mby5oYWRQ
aXhlbE9yUG9zUHJlZml4KQotICAgICAgICB2YWx1ZS5hcHBlbmQoInB4Iik7Ci0KICAgICBib29s
IGltcG9ydGFudCA9IGZhbHNlOwogICAgIGlmIChEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNo
b3VsZFJlc3BlY3RQcmlvcml0eUluQ1NTQXR0cmlidXRlU2V0dGVycygpKSB7CiAgICAgICAgIGF1
dG8gaW1wb3J0YW50SW5kZXggPSB2YWx1ZS5maW5kSWdub3JpbmdBU0NJSUNhc2UoIiFpbXBvcnRh
bnQiKTsKQEAgLTMxOSwzOCArMjc5LDQzIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENTU1N0eWxlRGVj
bGFyYXRpb246OnMKICAgICAgICAgfQogICAgIH0KIAotICAgIGF1dG8gc2V0UHJvcGVydHlJbnRl
cm5hbFJlc3VsdCA9IHNldFByb3BlcnR5SW50ZXJuYWwocHJvcGVydHlJbmZvLnByb3BlcnR5SUQs
IHZhbHVlLCBpbXBvcnRhbnQpOworICAgIGF1dG8gc2V0UHJvcGVydHlJbnRlcm5hbFJlc3VsdCA9
IHNldFByb3BlcnR5SW50ZXJuYWwocHJvcGVydHlJRCwgdmFsdWUsIGltcG9ydGFudCk7CiAgICAg
aWYgKHNldFByb3BlcnR5SW50ZXJuYWxSZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJl
dHVybiBzZXRQcm9wZXJ0eUludGVybmFsUmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKIAogICAg
IHJldHVybiB7IH07CiB9CiAKLVZlY3RvcjxBdG9tU3RyaW5nPiBDU1NTdHlsZURlY2xhcmF0aW9u
OjpzdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkgY29uc3QKK1ZhcmlhbnQ8ZG91YmxlLCBTdHJpbmc+
IENTU1N0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5VmFsdWVJbnRlcm5hbEZvclBvc09yUGl4
ZWxQcmVmaXhlZChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpCiB7Ci0gICAgc3RhdGljIHVuc2ln
bmVkIG51bU5hbWVzID0gMDsKLSAgICBzdGF0aWMgY29uc3QgQXRvbVN0cmluZyogY29uc3QgY3Nz
UHJvcGVydHlOYW1lcyA9IFtdIHsKLSAgICAgICAgU3RyaW5nIG5hbWVzW251bUNTU1Byb3BlcnRp
ZXNdOwotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUNTU1Byb3BlcnRpZXM7ICsraSkg
ewotICAgICAgICAgICAgQ1NTUHJvcGVydHlJRCBpZCA9IHN0YXRpY19jYXN0PENTU1Byb3BlcnR5
SUQ+KGZpcnN0Q1NTUHJvcGVydHkgKyBpKTsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQg
dGFrZSBhY2NvdW50IGZvciBmbGFncyBpbiBzZXR0aW5ncygpLgotICAgICAgICAgICAgaWYgKGlz
RW5hYmxlZENTU1Byb3BlcnR5KGlkKSkKLSAgICAgICAgICAgICAgICBuYW1lc1tudW1OYW1lcysr
XSA9IGdldEpTUHJvcGVydHlOYW1lKGlkKTsKLSAgICAgICAgfQotICAgICAgICBzdGQ6OnNvcnQo
Jm5hbWVzWzBdLCAmbmFtZXNbbnVtTmFtZXNdLCBXVEY6OmNvZGVQb2ludENvbXBhcmVMZXNzVGhh
bik7Ci0gICAgICAgIGF1dG8qIGlkZW50aWZpZXJzID0gbmV3IEF0b21TdHJpbmdbbnVtTmFtZXNd
OwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtTmFtZXM7ICsraSkKLSAgICAg
ICAgICAgIGlkZW50aWZpZXJzW2ldID0gbmFtZXNbaV07Ci0gICAgICAgIHJldHVybiBpZGVudGlm
aWVyczsKLSAgICB9KCk7CisgICAgYXV0byB2YWx1ZSA9IGdldFByb3BlcnR5Q1NTVmFsdWVJbnRl
cm5hbChwcm9wZXJ0eUlEKTsKKyAgICBpZiAoIXZhbHVlKSB7CisgICAgICAgIC8vIElmIHRoZSBw
cm9wZXJ0eSBpcyBhIHNob3J0aGFuZCBwcm9wZXJ0eSAoc3VjaCBhcyAicGFkZGluZyIpLCBpdCBj
YW4gb25seSBiZSBhY2Nlc3NlZCB1c2luZyBnZXRQcm9wZXJ0eVZhbHVlLgorICAgICAgICByZXR1
cm4gZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsKHByb3BlcnR5SUQpOworICAgIH0KKyAgICAKKyAg
ICBpZiAoaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkpIHsKKyAgICAgICAgLy8gQ2FsbCB0
aGlzIHZlcnNpb24gb2YgdGhlIGdldHRlciBzbyB0aGF0LCBlLmcuLCBwaXhlbFRvcCByZXR1cm5z
IHRvcCBhcyBhIG51bWJlcgorICAgICAgICAvLyBpbiBwaXhlbCB1bml0cyBhbmQgcG9zVG9wIHNo
b3VsZCBkb2VzIHRoZSBzYW1lIF9pZl8gdGhpcyBpcyBhIHBvc2l0aW9uZWQgZWxlbWVudC4KKyAg
ICAgICAgLy8gRklYTUU6IElmIG5vdCBhIHBvc2l0aW9uZWQgZWxlbWVudCwgTVNJRSBkb2N1bWVu
dGF0aW9uIHNheXMgcG9zVG9wIHNob3VsZCByZXR1cm4gMDsgdGhpcyBydWxlIGlzIG5vdCBpbXBs
ZW1lbnRlZC4KKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFs
dWUpLmZsb2F0VmFsdWUoQ1NTVW5pdFR5cGU6OkNTU19QWCk7CisgICAgfQogCi0gICAgVmVjdG9y
PEF0b21TdHJpbmc+IHJlc3VsdDsKLSAgICByZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShu
dW1OYW1lcyk7CisgICAgcmV0dXJuIHZhbHVlLT5jc3NUZXh0KCk7Cit9CiAKLSAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbnVtTmFtZXM7ICsraSkKLSAgICAgICAgcmVzdWx0LnVuY2hlY2tl
ZEFwcGVuZChjc3NQcm9wZXJ0eU5hbWVzW2ldKTsKK0V4Y2VwdGlvbk9yPHZvaWQ+IENTU1N0eWxl
RGVjbGFyYXRpb246OnNldFByb3BlcnR5VmFsdWVJbnRlcm5hbEZvclBvc09yUGl4ZWxQcmVmaXhl
ZChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIFZhcmlhbnQ8ZG91YmxlLCBTdHJpbmc+IHZhbHVl
KQoreworICAgIFN0cmluZyBzdHJpbmdWYWx1ZSA9IFdURjo6c3dpdGNoT24odmFsdWUsIFsmXSAo
Y29uc3QgYXV0byYgaW5wdXQpIHsKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoaW5wdXQsICJw
eCIpOworICAgIH0pOwogCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gc2V0UHJvcGVy
dHlWYWx1ZUludGVybmFsKHByb3BlcnR5SUQsIFdURk1vdmUoc3RyaW5nVmFsdWUpKTsKK30KKwor
Q1NTUHJvcGVydHlJRCBDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRDU1NQcm9wZXJ0eUlERnJvbUph
dmFTY3JpcHRQcm9wZXJ0eU5hbWUoY29uc3QgQXRvbVN0cmluZyYgcHJvcGVydHlOYW1lKQorewor
ICAgIHJldHVybiBwcm9wZXJ0eUluZm9Gcm9tSmF2YVNjcmlwdENTU1Byb3BlcnR5TmFtZShwcm9w
ZXJ0eU5hbWUsIG51bGxwdHIpLnByb3BlcnR5SUQ7CiB9CiAKIFN0cmluZyBDU1NTdHlsZURlY2xh
cmF0aW9uOjpjc3NGbG9hdCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNs
YXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xh
cmF0aW9uLmgJKHJldmlzaW9uIDI2ODU0NykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHls
ZURlY2xhcmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDEyICs3MiwxMiBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIENTU1N0eWxlU2hlZXQqIHBhcmVudFN0eWxlU2hlZXQoKSBjb25zdCB7
IHJldHVybiBudWxscHRyOyB9CiAKLSAgICAvLyBCaW5kaW5ncyBzdXBwb3J0LgotICAgIE9wdGlv
bmFsPFZhcmlhbnQ8U3RyaW5nLCBkb3VibGU+PiBuYW1lZEl0ZW0oY29uc3QgQXRvbVN0cmluZyYp
OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldE5hbWVkSXRlbShjb25zdCBBdG9tU3RyaW5nJiBu
YW1lLCBTdHJpbmcgdmFsdWUsIGJvb2wmIHByb3BlcnR5U3VwcG9ydGVkKTsKLSAgICBWZWN0b3I8
QXRvbVN0cmluZz4gc3VwcG9ydGVkUHJvcGVydHlOYW1lcygpIGNvbnN0OworICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHNldFByb3BlcnR5VmFsdWVJbnRlcm5hbChDU1NQcm9wZXJ0eUlELCBTdHJpbmcp
OworICAgIFZhcmlhbnQ8ZG91YmxlLCBTdHJpbmc+IGdldFByb3BlcnR5VmFsdWVJbnRlcm5hbEZv
clBvc09yUGl4ZWxQcmVmaXhlZChDU1NQcm9wZXJ0eUlEKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lk
PiBzZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWxGb3JQb3NPclBpeGVsUHJlZml4ZWQoQ1NTUHJvcGVy
dHlJRCwgVmFyaWFudDxkb3VibGUsIFN0cmluZz4pOwogCiAgICAgc3RhdGljIENTU1Byb3BlcnR5
SUQgZ2V0Q1NTUHJvcGVydHlJREZyb21KYXZhU2NyaXB0UHJvcGVydHlOYW1lKGNvbnN0IEF0b21T
dHJpbmcmKTsKKwogcHJvdGVjdGVkOgogICAgIENTU1N0eWxlRGVjbGFyYXRpb24oKSA9IGRlZmF1
bHQ7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlk
bAkocmV2aXNpb24gMjY4NTQ3KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFy
YXRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNiwgMjAwNywgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDksIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53
ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTE4LDQwICsxOCwyOSBAQAogICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAordHlwZWRlZiBVU1ZTdHJpbmcgQ1NTT01T
dHJpbmc7CisKIFsKICAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKLSAgICBEZWZhdWx0
RGVmaW5lT3duUHJvcGVydHksCiAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZSwKICAgICBKU0N1c3Rv
bUhlYWRlciwKICAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKICAgICBTa2lwVlRhYmxlVmFsaWRh
dGlvbiwKICAgICBFeHBvc2VkPVdpbmRvdwogXSBpbnRlcmZhY2UgQ1NTU3R5bGVEZWNsYXJhdGlv
biB7Ci0gICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNzc1RleHQ7Ci0KLSAg
ICBET01TdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZShET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKLQot
ICAgIFtDRVJlYWN0aW9ucywgTWF5VGhyb3dFeGNlcHRpb25dIERPTVN0cmluZyByZW1vdmVQcm9w
ZXJ0eShET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKLSAgICBET01TdHJpbmc/IGdldFByb3BlcnR5
UHJpb3JpdHkoRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7Ci0KLSAgICBbQ0VSZWFjdGlvbnMsIE1h
eVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc2V0UHJvcGVydHkoRE9NU3RyaW5nIHByb3BlcnR5
TmFtZSwgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBET01TdHJpbmcgdmFsdWUsIG9wdGlvbmFs
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gRE9NU3RyaW5nIHByaW9yaXR5ID0gIiIpOwotCisg
ICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgQ1NTT01TdHJpbmcgY3NzVGV4dDsKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7Ci0gICAgZ2V0dGVyIERPTVN0cmlu
ZyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIGdldHRlciBDU1NPTVN0cmluZyBpdGVt
KHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIENTU09NU3RyaW5nIGdldFByb3BlcnR5VmFsdWUo
Q1NTT01TdHJpbmcgcHJvcGVydHkpOworICAgIC8vIEZJWE1FOiBUaGUgcmV0dXJuIHZhbHVlIG9m
ICdnZXRQcm9wZXJ0eVByaW9yaXR5JyBzaG91bGQgbm90IGJlIG51bGxhYmxlLgorICAgIENTU09N
U3RyaW5nPyBnZXRQcm9wZXJ0eVByaW9yaXR5KENTU09NU3RyaW5nIHByb3BlcnR5KTsKKyAgICBb
Q0VSZWFjdGlvbnMsIE1heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQgc2V0UHJvcGVydHkoQ1NT
T01TdHJpbmcgcHJvcGVydHksIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
dmFsdWUsIG9wdGlvbmFsIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgcHJp
b3JpdHkgPSAiIik7CisgICAgW0NFUmVhY3Rpb25zLCBNYXlUaHJvd0V4Y2VwdGlvbl0gQ1NTT01T
dHJpbmcgcmVtb3ZlUHJvcGVydHkoQ1NTT01TdHJpbmcgcHJvcGVydHkpOwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBDU1NSdWxlPyBwYXJlbnRSdWxlOworICAgIFtDRVJlYWN0aW9uc10gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgY3NzRmxvYXQ7CiAKLSAg
ICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIERPTVN0
cmluZyBjc3NGbG9hdDsKLQorICAgIC8vIE5vbi1zdGFuZGFyZC4KICAgICBET01TdHJpbmc/IGdl
dFByb3BlcnR5U2hvcnRoYW5kKG9wdGlvbmFsIERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwogICAg
IGJvb2xlYW4gaXNQcm9wZXJ0eUltcGxpY2l0KG9wdGlvbmFsIERPTVN0cmluZyBwcm9wZXJ0eU5h
bWUpOwotCi0gICAgLy8gVXNlIG5hbWVkIGdldHRlcnMvc2V0dGVycyBmb3IgYWxsIHN1cHBvcnQg
Q1NTIHByb3BlcnR5IG5hbWVzLiBUaGUgc3BlYyBzYXlzCi0gICAgLy8gdGhlc2Ugc2hvdWxkIGJl
IG5vcm1hbCBhdHRyaWJ1dGVzLCBidXQgdGhlcmUgYXJlIHRvbyBtYW55IGNvbWJpbmF0aW9ucyB3
aXRoCi0gICAgLy8gcHJlZml4ZXMgZm9yIHRoaXMgdG8gYmUgcHJhY3RpY2FsLiBJZiB3ZSByZW1v
dmUgbGVnYWN5IGFsaWFzZXMsIHdlIHNob3VsZAotICAgIC8vIHJlY29uc2lkZXIgdGhpcyBkZWNp
c2lvbi4KLSAgICBnZXR0ZXIgKERPTVN0cmluZyBvciBkb3VibGUpIChET01TdHJpbmcgbmFtZSk7
Ci0gICAgW0NFUmVhY3Rpb25zLCBDYWxsTmFtZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVy
dGllc10gc2V0dGVyIHVuZGVmaW5lZCAoRE9NU3RyaW5nIG5hbWUsIFtMZWdhY3lOdWxsVG9FbXB0
eVN0cmluZ10gRE9NU3RyaW5nIHZhbHVlKTsKLQotICAgIC8vIFRoaXMgbWV0aG9kIGlzIGRlcHJl
Y2F0ZWQsIGFuZCB3ZSB3b3VsZCBsaWtlIHRvIGRyb3Agc3VwcG9ydCBmb3IgaXQgc29tZWRheQog
ICAgIERlcHJlY2F0ZWRDU1NPTVZhbHVlPyBnZXRQcm9wZXJ0eUNTU1ZhbHVlKERPTVN0cmluZyBw
cm9wZXJ0eU5hbWUpOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXByb3AucGwJKHJldmlzaW9uIDI2
ODU0NykKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAkod29ya2luZyBjb3B5KQpA
QCAtMTM1OCwzICsxMzU4LDE3NSBAQCBpZiAobm90ICRncGVyZikgewogICAgICRncGVyZiA9ICRF
TlZ7R1BFUkZ9ID8gJEVOVntHUEVSRn0gOiAiZ3BlcmYiOwogfQogc3lzdGVtKCJcIiRncGVyZlwi
IC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAtbiAtcyAyIENTU1Byb3BlcnR5TmFtZXMuZ3BlcmYg
LS1vdXRwdXQtZmlsZT1DU1NQcm9wZXJ0eU5hbWVzLmNwcCIpID09IDAgfHwgZGllICJjYWxsaW5n
IGdwZXJmIGZhaWxlZDogJD8iOworCisKKyMgR2VuZXJhdGUgQ1NTU3R5bGVEZWNsYXJhdGlvbitQ
cm9wZXJ0eU5hbWVzLmlkbAorCisjIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS8jY3Nz
LXByb3BlcnR5LXRvLWlkbC1hdHRyaWJ1dGUKK3N1YiBjc3NQcm9wZXJ0eVRvSURMQXR0cmlidXRl
KCQkJCkKK3sKKyAgICBteSAkcHJvcGVydHkgPSBzaGlmdDsKKyAgICBteSAkbG93ZXJjYXNlRmly
c3QgPSBzaGlmdDsKKyAgICBteSAkdXBwZXJjYXNlRmlyc3QgPSBzaGlmdDsKKworICAgIG15ICRv
dXRwdXQgPSAiIjsKKyAgICBteSAkdXBwZXJjYXNlTmV4dCA9ICR1cHBlcmNhc2VGaXJzdDsKKwor
ICAgIGlmICgkbG93ZXJjYXNlRmlyc3QpIHsKKyAgICAgICAgJHByb3BlcnR5ID0gc3Vic3RyKCRw
cm9wZXJ0eSwgMSk7CisgICAgfQorCisgICAgZm9yZWFjaCBteSAkY2hhcmFjdGVyIChzcGxpdCAv
LywgJHByb3BlcnR5KSB7CisgICAgICAgIGlmICgkY2hhcmFjdGVyIGVxICItIikgeworICAgICAg
ICAgICAgJHVwcGVyY2FzZU5leHQgPSAxOworICAgICAgICB9IGVsc2lmICgkdXBwZXJjYXNlTmV4
dCkgeworICAgICAgICAgICAgJHVwcGVyY2FzZU5leHQgPSAwOworICAgICAgICAgICAgJG91dHB1
dCAuPSB1YyAkY2hhcmFjdGVyOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJG91dHB1
dCAuPSAkY2hhcmFjdGVyOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHJldHVybiAkb3V0
cHV0OworfQorCitteSAlbmFtZXNBbmRBbGlhc2VzVG9OYW1lOworZm9yZWFjaCBteSAkbmFtZSAo
QG5hbWVzKSB7CisgICAgaWYgKGdyZXAgeyAkXyBlcSAkbmFtZSB9IEBpbnRlcm5hbFByb3ByZXJ0
aWVzKSB7CisgICAgICAgIG5leHQ7CisgICAgfQorICAgICRuYW1lc0FuZEFsaWFzZXNUb05hbWV7
JG5hbWV9ID0gJG5hbWU7CisgICAgZm9yIG15ICRhbGlhcyAoQHskbmFtZVRvQWxpYXNlc3skbmFt
ZX19KSB7CisgICAgICAgICRuYW1lc0FuZEFsaWFzZXNUb05hbWV7JGFsaWFzfSA9ICRuYW1lOwor
ICAgIH0KK30KK215IEBuYW1lc0FuZEFsaWFzZXMgPSBzb3J0IGtleXMoJW5hbWVzQW5kQWxpYXNl
c1RvTmFtZSk7CisKK29wZW4gQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lE
TCwgIj4iLCAiQ1NTU3R5bGVEZWNsYXJhdGlvbitQcm9wZXJ0eU5hbWVzLmlkbCIgb3IgZGllICJD
b3VsZCBub3Qgb3BlbiBDU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsIGZvciB3
cml0aW5nXG4iOworcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lE
TCA8PCAiRU9GIjsKKy8vIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9t
ICRpbnB1dEZpbGUgYnkgdGhlIG1ha2Vwcm9wLnBsIHNjcmlwdC4gRG8gbm90IGVkaXQgaXQuCisK
K3R5cGVkZWYgVVNWU3RyaW5nIENTU09NU3RyaW5nOworCitwYXJ0aWFsIGludGVyZmFjZSBDU1NT
dHlsZURlY2xhcmF0aW9uIHsKK0VPRgorIAorcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BS
T1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsKKyAgICAvLyBGb3IgZWFjaCBDU1MgcHJvcGVydHkg
cHJvcGVydHkgdGhhdCBpcyBhIHN1cHBvcnRlZCBDU1MgcHJvcGVydHksIHRoZSBmb2xsb3dpbmcK
KyAgICAvLyBwYXJ0aWFsIGludGVyZmFjZSBhcHBsaWVzIHdoZXJlIGNhbWVsLWNhc2VkIGF0dHJp
YnV0ZSBpcyBvYnRhaW5lZCBieSBydW5uaW5nIHRoZQorICAgIC8vIENTUyBwcm9wZXJ0eSB0byBJ
REwgYXR0cmlidXRlIGFsZ29yaXRobSBmb3IgcHJvcGVydHkuCisgICAgLy8gRXhhbXBsZTogZm9u
dC1zaXplIC0+IGVsZW1lbnQuc3R5bGUuZm9udFNpemUKKyAgICAvLyBFeGFtcGxlOiAtd2Via2l0
LXRyYW5zZm9ybSAtPiBlbGVtZW50LnN0eWxlLldlYmtpdFRyYW5zZm9ybQorICAgIC8vIFtDRVJl
YWN0aW9uc10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcg
X2NhbWVsX2Nhc2VkX2F0dHJpYnV0ZTsKK0VPRgorCitmb3JlYWNoIG15ICRuYW1lT3JBbGlhcyAo
QG5hbWVzQW5kQWxpYXNlcykgeworICAgIG15ICRjYW1lbENhc2VkQXR0cmlidXRlTmFtZSA9IGNz
c1Byb3BlcnR5VG9JRExBdHRyaWJ1dGUoJG5hbWVPckFsaWFzLCAwLCAwKTsKKyAgICBteSAkbmFt
ZSA9ICRuYW1lc0FuZEFsaWFzZXNUb05hbWV7JG5hbWVPckFsaWFzfTsKKyAgICBteSAkcHJvcGVy
dHlJZCA9ICRuYW1lVG9JZHskbmFtZXNBbmRBbGlhc2VzVG9OYW1leyRuYW1lfX07CisgICAgCisg
ICAgbXkgQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzID0gKCJDU1NQcm9wZXJ0eT0ke3Byb3BlcnR5
SWR9Iik7CisgICAgcHVzaChAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMsICJFbmFibGVkQnlTZXR0
aW5nPSR7c2V0dGluZ3NGbGFnc3skbmFtZX19IikgaWYgJHNldHRpbmdzRmxhZ3N7JG5hbWV9Owor
ICAgIHB1c2goQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzLCAiRW5hYmxlZEF0UnVudGltZT0ke3J1
bnRpbWVGbGFnc3skbmFtZX19IikgaWYgJHJ1bnRpbWVGbGFnc3skbmFtZX07CisgICAgbXkgJGV4
dGVuZGVkQXR0cmlidXRlcyA9IGpvaW4oIiwgIiwgQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzKTsK
KworICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgIiAg
ICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgJHtjYW1lbENhc2VkQXR0cmlidXRlTmFtZX07
XG4iOworfQorCitwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURM
IDw8ICJFT0YiOworCisgICAgLy8gRm9yIGVhY2ggQ1NTIHByb3BlcnR5IHByb3BlcnR5IHRoYXQg
aXMgYSBzdXBwb3J0ZWQgQ1NTIHByb3BlcnR5IGFuZCB0aGF0IGJlZ2lucworICAgIC8vIHdpdGgg
dGhlIHN0cmluZyAtd2Via2l0LSwgdGhlIGZvbGxvd2luZyBwYXJ0aWFsIGludGVyZmFjZSBhcHBs
aWVzIHdoZXJlIHdlYmtpdC1jYXNlZAorICAgIC8vIGF0dHJpYnV0ZSBpcyBvYnRhaW5lZCBieSBy
dW5uaW5nIHRoZSBDU1MgcHJvcGVydHkgdG8gSURMIGF0dHJpYnV0ZSBhbGdvcml0aG0gZm9yCisg
ICAgLy8gcHJvcGVydHksIHdpdGggdGhlIGxvd2VyY2FzZSBmaXJzdCBmbGFnIHNldC4KKyAgICAv
LyBFeGFtcGxlOiAtd2Via2l0LXRyYW5zZm9ybSAtPiBlbGVtZW50LnN0eWxlLndlYmtpdFRyYW5z
Zm9ybQorICAgIC8vIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgX3dlYmtpdF9jYXNlZF9hdHRyaWJ1dGU7CitFT0YKKworZm9yZWFj
aCBteSAkbmFtZU9yQWxpYXMgKGdyZXAgeyAkXyA9fiAvXlwtd2Via2l0XC0vIH0gQG5hbWVzQW5k
QWxpYXNlcykgeworICAgIG15ICR3ZWJraXRDYXNlZEF0dHJpYnV0ZU5hbWUgPSBjc3NQcm9wZXJ0
eVRvSURMQXR0cmlidXRlKCRuYW1lT3JBbGlhcywgMSwgMCk7CisgICAgbXkgJG5hbWUgPSAkbmFt
ZXNBbmRBbGlhc2VzVG9OYW1leyRuYW1lT3JBbGlhc307CisgICAgbXkgJHByb3BlcnR5SWQgPSAk
bmFtZVRvSWR7JG5hbWVzQW5kQWxpYXNlc1RvTmFtZXskbmFtZX19OworICAgIAorICAgIG15IEBl
eHRlbmRlZEF0dHJpYnV0ZVZhbHVlcyA9ICgiQ1NTUHJvcGVydHk9JHtwcm9wZXJ0eUlkfSIpOwor
ICAgIHB1c2goQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzLCAiRW5hYmxlZEJ5U2V0dGluZz0ke3Nl
dHRpbmdzRmxhZ3N7JG5hbWV9fSIpIGlmICRzZXR0aW5nc0ZsYWdzeyRuYW1lfTsKKyAgICBwdXNo
KEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcywgIkVuYWJsZWRBdFJ1bnRpbWU9JHtydW50aW1lRmxh
Z3N7JG5hbWV9fSIpIGlmICRydW50aW1lRmxhZ3N7JG5hbWV9OworICAgIG15ICRleHRlbmRlZEF0
dHJpYnV0ZXMgPSBqb2luKCIsICIsIEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcyk7CisKKyAgICBw
cmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVh
Y3Rpb25zLCAke2V4dGVuZGVkQXR0cmlidXRlc31dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nICR7d2Via2l0Q2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiI7Cit9
CisKK3ByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgPDwgIkVP
RiI7CisKKyAgICAvLyBGb3IgZWFjaCBDU1MgcHJvcGVydHkgcHJvcGVydHkgdGhhdCBpcyBhIHN1
cHBvcnRlZCBDU1MgcHJvcGVydHksIGV4Y2VwdCBmb3IKKyAgICAvLyBwcm9wZXJ0aWVzIHRoYXQg
aGF2ZSBubyAiLSIgKFUrMDAyRCkgaW4gdGhlIHByb3BlcnR5IG5hbWUsIHRoZSBmb2xsb3dpbmcg
cGFydGlhbAorICAgIC8vIGludGVyZmFjZSBhcHBsaWVzIHdoZXJlIGRhc2hlZCBhdHRyaWJ1dGUg
aXMgcHJvcGVydHkuCisgICAgLy8gRXhhbXBsZTogZm9udC1zaXplIC0+IGVsZW1lbnQuc3R5bGVb
J2ZvbnQtc2l6ZSddCisgICAgLy8gRXhhbXBsZTogLXdlYmtpdC10cmFuc2Zvcm0gLT4gZWxlbWVu
dC5zdHlsZS5bJy13ZWJraXQtdHJhbnNmb3JtJ10KKyAgICAvLyBbQ0VSZWFjdGlvbnNdIGF0dHJp
YnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIF9kYXNoZWRfYXR0cmli
dXRlOworRU9GCitmb3JlYWNoIG15ICRuYW1lT3JBbGlhcyAoZ3JlcCB7ICRfID1+IC9cLS8gfSBA
bmFtZXNBbmRBbGlhc2VzKSB7CisgICAgbXkgJGRhc2hlZEF0dHJpYnV0ZU5hbWUgPSAkbmFtZU9y
QWxpYXM7CisgICAgbXkgJG5hbWUgPSAkbmFtZXNBbmRBbGlhc2VzVG9OYW1leyRuYW1lT3JBbGlh
c307CisgICAgbXkgJHByb3BlcnR5SWQgPSAkbmFtZVRvSWR7JG5hbWVzQW5kQWxpYXNlc1RvTmFt
ZXskbmFtZX19OworICAgIAorICAgIG15IEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcyA9ICgiQ1NT
UHJvcGVydHk9JHtwcm9wZXJ0eUlkfSIpOworICAgIHB1c2goQGV4dGVuZGVkQXR0cmlidXRlVmFs
dWVzLCAiRW5hYmxlZEJ5U2V0dGluZz0ke3NldHRpbmdzRmxhZ3N7JG5hbWV9fSIpIGlmICRzZXR0
aW5nc0ZsYWdzeyRuYW1lfTsKKyAgICBwdXNoKEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcywgIkVu
YWJsZWRBdFJ1bnRpbWU9JHtydW50aW1lRmxhZ3N7JG5hbWV9fSIpIGlmICRydW50aW1lRmxhZ3N7
JG5hbWV9OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZXMgPSBqb2luKCIsICIsIEBleHRlbmRl
ZEF0dHJpYnV0ZVZhbHVlcyk7CisKKyAgICBwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJP
UEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVhY3Rpb25zLCAke2V4dGVuZGVkQXR0cmlidXRlc31d
IGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nICR7ZGFzaGVk
QXR0cmlidXRlTmFtZX07XG4iOworfQorCisjIEV2ZXJ5dGhpbmcgYmVsb3cgaGVyZSBpcyBub24t
c3RhbmRhcmQuCisKK3ByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19J
REwgPDwgIkVPRiI7CisKKyAgICAvLyBOb24tc3RhbmRhcmQuIFNwZWNpYWwgY2FzZSBwcm9wZXJ0
aWVzIHN0YXJ0aW5nIHdpdGggLWVwdWItIGxpa2UgaXMgZG9uZSBmb3IKKyAgICAvLyAtd2Via2l0
LSwgd2hlcmUgYXR0cmlidXRlIGlzIG9idGFpbmVkIGJ5IHJ1bm5pbmcgdGhlIENTUyBwcm9wZXJ0
eSB0byBJREwgYXR0cmlidXRlCisgICAgLy8gYWxnb3JpdGhtIGZvciBwcm9wZXJ0eSwgd2l0aCB0
aGUgbG93ZXJjYXNlIGZpcnN0IGZsYWcgc2V0LgorICAgIC8vIEV4YW1wbGU6IC1lcHViLWNhcHRp
b24tc2lkZSAtPiBlbGVtZW50LnN0eWxlLmVwdWJDYXB0aW9uU2lkZQorRU9GCitmb3JlYWNoIG15
ICRuYW1lT3JBbGlhcyAoZ3JlcCB7ICRfID1+IC9eXC1lcHViXC0vIH0gQG5hbWVzQW5kQWxpYXNl
cykgeworICAgIG15ICRlcHViQ2FzZWRBdHRyaWJ1dGVOYW1lID0gY3NzUHJvcGVydHlUb0lETEF0
dHJpYnV0ZSgkbmFtZU9yQWxpYXMsIDEsIDApOworICAgIG15ICRuYW1lID0gJG5hbWVzQW5kQWxp
YXNlc1RvTmFtZXskbmFtZU9yQWxpYXN9OworICAgIG15ICRwcm9wZXJ0eUlkID0gJG5hbWVUb0lk
eyRuYW1lc0FuZEFsaWFzZXNUb05hbWV7JG5hbWV9fTsKKyAgICAKKyAgICBteSBAZXh0ZW5kZWRB
dHRyaWJ1dGVWYWx1ZXMgPSAoIkNTU1Byb3BlcnR5PSR7cHJvcGVydHlJZH0iKTsKKyAgICBwdXNo
KEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcywgIkVuYWJsZWRCeVNldHRpbmc9JHtzZXR0aW5nc0Zs
YWdzeyRuYW1lfX0iKSBpZiAkc2V0dGluZ3NGbGFnc3skbmFtZX07CisgICAgcHVzaChAZXh0ZW5k
ZWRBdHRyaWJ1dGVWYWx1ZXMsICJFbmFibGVkQXRSdW50aW1lPSR7cnVudGltZUZsYWdzeyRuYW1l
fX0iKSBpZiAkcnVudGltZUZsYWdzeyRuYW1lfTsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVz
ID0gam9pbigiLCAiLCBAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMpOworCisgICAgcHJpbnQgQ1NT
X1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywg
JHtleHRlbmRlZEF0dHJpYnV0ZXN9XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZyAke2VwdWJDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIjsKK30KKworcHJpbnQg
Q1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsKKworICAg
IC8vIE5vbi1zdGFuZGFyZC4gQWRkIHNwZWNpYWwgY2FzZXMgZm9yIGFsbCBwcm9wZXJ0aWVzIG5v
dCBzdGFydGluZyB3aXRoIC13ZWJraXQtIG9yIC1lcHViLQorICAgIC8vIHRoYXQgcHV0cyBhbiBu
ZXcgcHJlZml4IG9mIGNzcywgQ3NzLCBwb3MsIFBvcywgcGl4ZWwgYW5kIFBpeGVsIG9uIGVhY2gu
CisgICAgLy8gRXhhbXBsZSB0b3AgLT4gZWxlbWVudC5zdHlsZS5wb3NUb3AKKyAgICAvLyBFeGFt
cGxlIHRvcCAtPiBlbGVtZW50LnN0eWxlLlBpeGVsVG9wCitFT0YKK2ZvcmVhY2ggbXkgJG5hbWVP
ckFsaWFzIChncmVwIHsgJF8gIX4gL15cLXdlYmtpdFwtfF5cLWVwdWJcLS8gfSBAbmFtZXNBbmRB
bGlhc2VzKSB7CisgICAgbXkgJGNhbWVsQ2FzZWRBdHRyaWJ1dGVOYW1lID0gY3NzUHJvcGVydHlU
b0lETEF0dHJpYnV0ZSgkbmFtZU9yQWxpYXMsIDAsIDEpOworICAgIG15ICRuYW1lID0gJG5hbWVz
QW5kQWxpYXNlc1RvTmFtZXskbmFtZU9yQWxpYXN9OworICAgIG15ICRwcm9wZXJ0eUlkID0gJG5h
bWVUb0lkeyRuYW1lc0FuZEFsaWFzZXNUb05hbWV7JG5hbWV9fTsKKyAgICAKKyAgICBteSBAZXh0
ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMgPSAoIkNTU1Byb3BlcnR5PSR7cHJvcGVydHlJZH0iKTsKKyAg
ICBwdXNoKEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcywgIkVuYWJsZWRCeVNldHRpbmc9JHtzZXR0
aW5nc0ZsYWdzeyRuYW1lfX0iKSBpZiAkc2V0dGluZ3NGbGFnc3skbmFtZX07CisgICAgcHVzaChA
ZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMsICJFbmFibGVkQXRSdW50aW1lPSR7cnVudGltZUZsYWdz
eyRuYW1lfX0iKSBpZiAkcnVudGltZUZsYWdzeyRuYW1lfTsKKyAgICBteSAkZXh0ZW5kZWRBdHRy
aWJ1dGVzID0gam9pbigiLCAiLCBAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMpOworCisgICAgcHJp
bnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCAiICAgIFtDRVJlYWN0
aW9ucywgJHtleHRlbmRlZEF0dHJpYnV0ZXN9XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nXSBDU1NPTVN0cmluZyBjc3Mke2NhbWVsQ2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiIgdW5s
ZXNzICRjYW1lbENhc2VkQXR0cmlidXRlTmFtZSBlcSAiRmxvYXQiOworICAgIHByaW50IENTU19T
VFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMsICR7
ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
Q1NTT01TdHJpbmcgQ3NzJHtjYW1lbENhc2VkQXR0cmlidXRlTmFtZX07XG4iIHVubGVzcyAkY2Ft
ZWxDYXNlZEF0dHJpYnV0ZU5hbWUgZXEgIkZsb2F0IjsKKyAgICBwcmludCBDU1NfU1RZTEVfREVD
TEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVhY3Rpb25zLCAke2V4dGVuZGVk
QXR0cmlidXRlc31dIGF0dHJpYnV0ZSAoZG91YmxlIG9yIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcpIHBvcyR7Y2FtZWxDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIjsKKyAgICBw
cmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVh
Y3Rpb25zLCAke2V4dGVuZGVkQXR0cmlidXRlc31dIGF0dHJpYnV0ZSAoZG91YmxlIG9yIFtMZWdh
Y3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcpIFBvcyR7Y2FtZWxDYXNlZEF0dHJpYnV0
ZU5hbWV9O1xuIjsKKyAgICBwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFN
RVNfSURMICIgICAgW0NFUmVhY3Rpb25zLCAke2V4dGVuZGVkQXR0cmlidXRlc31dIGF0dHJpYnV0
ZSAoZG91YmxlIG9yIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcpIHBpeGVs
JHtjYW1lbENhc2VkQXR0cmlidXRlTmFtZX07XG4iOworICAgIHByaW50IENTU19TVFlMRV9ERUNM
QVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRB
dHRyaWJ1dGVzfV0gYXR0cmlidXRlIChkb3VibGUgb3IgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBDU1NPTVN0cmluZykgUGl4ZWwke2NhbWVsQ2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiI7Cit9CisK
K3ByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgPDwgIkVPRiI7
Cit9OworRU9GCisKK2Nsb3NlIENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19J
REw7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjg1NDcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyOSBAQAorMjAyMC0xMC0xNSAgU2FtIFdlaW5pZyAg
PHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiBicmVha3Mg
SlMgc3BlYyAocHJvcGVydGllcyBub3Qgc2hvd2luZyB1cCBpbiBPYmplY3QuZ2V0T3duUHJvcGVy
dHlOYW1lcykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzYyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogZmFzdC9jc3Mvc3R5bGUtZW51bWVyYXRlLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvY3NzL3N0eWxlLWVudW1lcmF0ZS1wcm9wZXJ0aWVzLmh0bWw6CisgICAgICAg
ICogZmFzdC9kb20vZG9tTGlzdEVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L2RvbS9kb21MaXN0RW51bWVyYXRpb24uaHRtbDoKKyAgICAgICAgUmVtb3ZlIHRlc3RzIGZv
ciBpdGVyYXRpb24gb3JkZXIsIHdoaWNoIGlzIG5vdCBzdGFuZGFyZGl6ZWQsIGFuZCBub3QgY29u
c2lzdGVudCBhbW9uZworICAgICAgICBicm93c2Vycy4KKworICAgICAgICAqIGZhc3QvZG9tL0NT
U1N0eWxlRGVjbGFyYXRpb24vY3Nzc3R5bGVkZWNsYXJhdGlvbi1wcm9wZXJ0aWVzLWRlc2NyaXB0
b3ItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24v
Y3Nzc3R5bGVkZWNsYXJhdGlvbi1wcm9wZXJ0aWVzLWRlc2NyaXB0b3IuaHRtbDoKKyAgICAgICAg
VXBkYXRlIG5vdyB0aGF0IHRoZSBwcm9wZXJ0aWVzIGFyZSBwcm9wZXIgYXR0cmlidXRlcyBvbiB0
aGUgcHJvdG90eXBlLgorCisgICAgICAgICoganMvZG9tL3B1dC1vdmVycmlkZS1zaG91bGQtbm90
LXVzZS1pYy5odG1sOgorICAgICAgICBTd2l0Y2ggdG8gdXNpbmcgYSBET01TdHJpbmdMaXN0IGFz
IHRoZSBvYmplY3QgdGhhdCBvdmVycmlkZXMgcHV0LCBzaW5jZSBDU1NTdHlsZURlY2xhcmF0aW9u
IG5vIGxvbmdlciBkb2VzLgorCisgICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbnMtcGFy
c2luZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbnMtcGFy
c2luZy5odG1sOgorICAgICAgICBSZW1vdmUgT2JqZWN0LmtleXMoKSBhc3BlY3Qgb2YgdGhlIHRl
c3QsIHdoaWNoIGlzIG5vIGxvbmdlciBtZWFuaW5nZnVsIHNpbmNlIHRoZQorICAgICAgICBwcm9w
ZXJ0aWVzIHNob3VsZCBubyBsb25nZXIgZXhpc3QgaW4gdGhlIHJlc3VsdCBzZXQuCisKIDIwMjAt
MTAtMTUgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXBk
YXRpbmcgYW4gaW5kaXZpZHVhbCB0cmFuc2Zvcm0gQ1NTIHByb3BlcnR5IGhhcyBubyB2aXN1YWwg
Y2hhbmdlIHdoZW4gY29tcG9zaXRlZApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUt
ZW51bWVyYXRlLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvY3NzL3N0eWxlLWVudW1lcmF0ZS1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMjY4NTQ3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtZW51bWVyYXRlLXBy
b3BlcnRpZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3ICsxMSw2IEBAIFBB
U1MgJ1dlYmtpdFRyYW5zZm9ybScgaW4gZG9jdW1lbnQuYm9keS4KIFBBU1MgJ2JvZ3VzLXJhbmRv
bS1TdHJpbmcnIGluIGRvY3VtZW50LmJvZHkuc3R5bGUgaXMgZmFsc2UKIFBBU1MgJ2Nzc1RleHQn
IGluIGRvY3VtZW50LmJvZHkuc3R5bGUgaXMgdHJ1ZQogUEFTUyAnZ2V0UHJvcGVydHlDU1NWYWx1
ZScgaW4gZG9jdW1lbnQuYm9keS5zdHlsZSBpcyB0cnVlCi1QQVNTIFRoZSBDU1MgcHJvcGVydHkg
b3JkZXIgaXMgY29ycmVjdAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1lbnVtZXJhdGUtcHJv
cGVydGllcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLWVu
dW1lcmF0ZS1wcm9wZXJ0aWVzLmh0bWwJKHJldmlzaW9uIDI2ODU0NykKKysrIExheW91dFRlc3Rz
L2Zhc3QvY3NzL3N0eWxlLWVudW1lcmF0ZS1wcm9wZXJ0aWVzLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTIzLDMzICsyMyw2IEBACiAgICAgICAgIHNob3VsZEJlRmFsc2UoIidib2d1cy1yYW5kb20t
U3RyaW5nJyBpbiBkb2N1bWVudC5ib2R5LnN0eWxlIik7CiAgICAgICAgIHNob3VsZEJlVHJ1ZSgi
J2Nzc1RleHQnIGluIGRvY3VtZW50LmJvZHkuc3R5bGUiKTsKICAgICAgICAgc2hvdWxkQmVUcnVl
KCInZ2V0UHJvcGVydHlDU1NWYWx1ZScgaW4gZG9jdW1lbnQuYm9keS5zdHlsZSIpOwotCi0gICAg
ICAgIC8vIFRlc3QgQ1NTIHByb3BlcnR5IG9yZGVyLgotICAgICAgICB2YXIgc3RhcnRlZDsKLSAg
ICAgICAgdmFyIGNzc1Byb3BlcnR5Q291bnQgPSAwOwotICAgICAgICB2YXIgcHJldmlvdXM7Ci0g
ICAgICAgIHZhciBzZWVuRmlsdGVyOwotICAgICAgICBmb3IgKHZhciBwIGluIGRvY3VtZW50LmJv
ZHkuc3R5bGUpIHsKLSAgICAgICAgICAgIGlmIChwID09PSAiYWxpZ25tZW50QmFzZWxpbmUiKQot
ICAgICAgICAgICAgICAgIHN0YXJ0ZWQgPSB0cnVlOwotICAgICAgICAgICAgaWYgKCFzdGFydGVk
KQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgaWYgKHAgPT09ICJmaWx0
ZXIiKQotICAgICAgICAgICAgICAgIHNlZW5GaWx0ZXIgPSB0cnVlOwotICAgICAgICAgICAgaWYg
KHByZXZpb3VzICYmIHByZXZpb3VzID49IHApIHsKLSAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJJbnZhbGlkIENTUy1tYXBwZWQgcHJvcGVydHkgb3JkZXI6ICciICsgcCArICInIGFmdGVyICci
ICsgcHJldmlvdXMgKyAiJyIpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgaWYgKCsrY3NzUHJvcGVydHlDb3VudCA8PSA0MDApCi0gICAgICAgICAg
ICAgICAgcHJldmlvdXMgPSBwOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAg
aWYgKHNlZW5GaWx0ZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIlRoZSBDU1Mg
cHJvcGVydHkgb3JkZXIgaXMgY29ycmVjdCIpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhlICdmaWx0ZXInIHByb3BlcnR5IHdhcyBub3Qg
ZW51bWVyYXRlZCIpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAg
ICAgICB9CiAgICAgPC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vZG9tTGlzdEVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9kb21MaXN0RW51bWVyYXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAyNjg1NDcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9kb21MaXN0RW51bWVyYXRpb24tZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02NSwxNCArNjUsNiBAQCBQQVNTIHJlc3VsdEFy
cmF5WzFdLml0ZW0gaXMgY3NzUnVsZUxpc3QuCiBQQVNTIHJlc3VsdEFycmF5WzJdLmkgaXMgJzIn
CiBQQVNTIHJlc3VsdEFycmF5WzJdLml0ZW0gaXMgY3NzUnVsZUxpc3QuaXRlbSgyKQogCi1bb2Jq
ZWN0IENTU1N0eWxlRGVjbGFyYXRpb25dCi1QQVNTIHJlc3VsdEFycmF5WzBdLmkgaXMgJzAnCi1Q
QVNTIHJlc3VsdEFycmF5WzBdLml0ZW0gaXMgY3NzU3R5bGVEZWNsYXJhdGlvbi5pdGVtKDApCi1Q
QVNTIHJlc3VsdEFycmF5WzFdLmkgaXMgJzEnCi1QQVNTIHJlc3VsdEFycmF5WzFdLml0ZW0gaXMg
Y3NzU3R5bGVEZWNsYXJhdGlvbi5pdGVtKDEpCi1QQVNTIHJlc3VsdEFycmF5WzJdLmkgaXMgJzIn
Ci1QQVNTIHJlc3VsdEFycmF5WzJdLml0ZW0gaXMgY3NzU3R5bGVEZWNsYXJhdGlvbi5pdGVtKDIp
Ci0KIFtvYmplY3QgQ1NTVmFsdWVMaXN0XQogUEFTUyByZXN1bHRBcnJheS5sZW5ndGggaXMgMTAK
IFBBU1MgcmVzdWx0QXJyYXlbMF0uaSBpcyAnMCcKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L2RvbUxpc3RFbnVtZXJhdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL2RvbUxpc3RFbnVtZXJhdGlvbi5odG1sCShyZXZpc2lvbiAyNjg1NDcpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9kb21MaXN0RW51bWVyYXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MTc3LDE3ICsxNzcsNiBAQCBzaG91bGRCZSgicmVzdWx0QXJyYXlbMV0uaXRlbSIsICJjc3NSdWxl
CiBzaG91bGRCZSgicmVzdWx0QXJyYXlbMl0uaSIsICInMiciKTsKIHNob3VsZEJlKCJyZXN1bHRB
cnJheVsyXS5pdGVtIiwgImNzc1J1bGVMaXN0Lml0ZW0oMikiKTsKIAotLy8gQ1NTU3R5bGVEZWNs
YXJhdGlvbgotLy9kZWJ1Zyhlc2NhcGVIVE1MKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCdzdHlsZScpKSk7Ci12YXIgY3NzU3R5bGVEZWNsYXJhdGlvbiA9IGRvY3VtZW50LnN0eWxlU2hl
ZXRzWzJdLmNzc1J1bGVzWzBdLnN0eWxlOwotcmVzdWx0QXJyYXkgPSBpdGVyYXRlTGlzdChjc3NT
dHlsZURlY2xhcmF0aW9uKTsKLXNob3VsZEJlKCJyZXN1bHRBcnJheVswXS5pIiwgIicwJyIpOwot
c2hvdWxkQmUoInJlc3VsdEFycmF5WzBdLml0ZW0iLCAiY3NzU3R5bGVEZWNsYXJhdGlvbi5pdGVt
KDApIik7Ci1zaG91bGRCZSgicmVzdWx0QXJyYXlbMV0uaSIsICInMSciKTsKLXNob3VsZEJlKCJy
ZXN1bHRBcnJheVsxXS5pdGVtIiwgImNzc1N0eWxlRGVjbGFyYXRpb24uaXRlbSgxKSIpOwotc2hv
dWxkQmUoInJlc3VsdEFycmF5WzJdLmkiLCAiJzInIik7Ci1zaG91bGRCZSgicmVzdWx0QXJyYXlb
Ml0uaXRlbSIsICJjc3NTdHlsZURlY2xhcmF0aW9uLml0ZW0oMikiKTsKLQogLy8gQ1NTVmFsdWVM
aXN0CiB2YXIgY3NzVmFsdWVMaXN0ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoJ29sJylbMF0pLmdldFByb3BlcnR5Q1NTVmFsdWUoJ2JvcmRl
ci1zcGFjaW5nJyk7CiByZXN1bHRBcnJheSA9IGl0ZXJhdGVMaXN0KGNzc1ZhbHVlTGlzdCk7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzc3N0eWxlZGVj
bGFyYXRpb24tcHJvcGVydGllcy1kZXNjcmlwdG9yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzc3N0eWxlZGVjbGFy
YXRpb24tcHJvcGVydGllcy1kZXNjcmlwdG9yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY4NTQ3
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3NzdHlsZWRl
Y2xhcmF0aW9uLXByb3BlcnRpZXMtZGVzY3JpcHRvci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTMsNyArMyw4IEBAIFRoaXMgdGVzdHMgdGhlIGRlc2NyaXB0b3Igb2YgQ1NTU3R5bGVE
ZWMKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGRlc2NyaXB0b3JbJ3dyaXRh
YmxlJ10gaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yWydnZXQnXSBpcyBhbiBpbnN0YW5jZSBvZiBG
dW5jdGlvbgorUEFTUyBkZXNjcmlwdG9yWydzZXQnXSBpcyBhbiBpbnN0YW5jZSBvZiBGdW5jdGlv
bgogUEFTUyBkZXNjcmlwdG9yWydlbnVtZXJhYmxlJ10gaXMgdHJ1ZQogUEFTUyBkZXNjcmlwdG9y
Wydjb25maWd1cmFibGUnXSBpcyB0cnVlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzc3N0eWxl
ZGVjbGFyYXRpb24tcHJvcGVydGllcy1kZXNjcmlwdG9yLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3NzdHlsZWRlY2xhcmF0aW9u
LXByb3BlcnRpZXMtZGVzY3JpcHRvci5odG1sCShyZXZpc2lvbiAyNjg1NDcpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzc3N0eWxlZGVjbGFyYXRpb24tcHJv
cGVydGllcy1kZXNjcmlwdG9yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUsOCArNSw5IEBACiAg
ICAgPHNjcmlwdD4KICAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhlIGRlc2NyaXB0
b3Igb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBwcm9wZXJ0aWVzLiIpOwogCi0gICAgICAgIHZhciBk
ZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkb2N1bWVudC5ib2R5
LnN0eWxlLCAnY29sb3InKTsKLSAgICAgICAgc2hvdWxkQmVUcnVlKCJkZXNjcmlwdG9yWyd3cml0
YWJsZSddIik7CisgICAgICAgIHZhciBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihkb2N1bWVudC5ib2R5LnN0eWxlLl9fcHJvdG9fXywgJ2NvbG9yJyk7CisgICAg
ICAgIHNob3VsZEJlVHlwZSgiZGVzY3JpcHRvclsnZ2V0J10iLCAiRnVuY3Rpb24iKTsKKyAgICAg
ICAgc2hvdWxkQmVUeXBlKCJkZXNjcmlwdG9yWydzZXQnXSIsICJGdW5jdGlvbiIpOwogICAgICAg
ICBzaG91bGRCZVRydWUoImRlc2NyaXB0b3JbJ2VudW1lcmFibGUnXSIpOwogICAgICAgICBzaG91
bGRCZVRydWUoImRlc2NyaXB0b3JbJ2NvbmZpZ3VyYWJsZSddIik7CiAgICAgPC9zY3JpcHQ+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2ODU0NykKKysrIExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxMyBAQAorMjAyMC0xMC0xNSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAg
ICAgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiBicmVha3MgSlMgc3BlYyAocHJvcGVydGllcyBub3Qg
c2hvd2luZyB1cCBpbiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcykKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzYyMworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS9jc3NzdHlsZWRlY2xhcmF0aW9uLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICBVcGRhdGUgdGVzdCByZXN1bHQgbm93IHRoYXQgaXQgaXMgcGFzc2luZy4KKwogMjAyMC0x
MC0xNCAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbY3NzLWZsZXhib3hdIGZsZXgtZ3JvdyBwcm9wZXJ0eSBzaG91bGQgYmUgYW5pbWF0YWJsZQpJ
bmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
b20vY3Nzc3R5bGVkZWNsYXJhdGlvbi1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Nv
bS9jc3NzdHlsZWRlY2xhcmF0aW9uLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAy
Njg1NDcpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3NvbS9jc3NzdHlsZWRlY2xhcmF0aW9uLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIENTUyBUZXN0OiBDU1NTdHlsZURlY2xh
cmF0aW9uIHByb3BlcnRpZXMgYXJlIGRlZmluZWQgYXMgV2ViSURMIGF0dHJpYnV0ZXMsIG5vdCB1
c2luZyBnZXRPd25Qcm9wZXJ0eU5hbWVzKCkgYXNzZXJ0X2ZhbHNlOiBzaG91bGRuJ3QgaGF2ZSBh
biBvd24gcHJvcGVydHkgZm9yIFdlYklETCBhdHRyaWJ1dGVzIGV4cGVjdGVkIGZhbHNlIGdvdCB0
cnVlCitQQVNTIENTUyBUZXN0OiBDU1NTdHlsZURlY2xhcmF0aW9uIHByb3BlcnRpZXMgYXJlIGRl
ZmluZWQgYXMgV2ViSURMIGF0dHJpYnV0ZXMsIG5vdCB1c2luZyBnZXRPd25Qcm9wZXJ0eU5hbWVz
KCkKIApJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL3B1dC1vdmVycmlkZS1zaG91bGQtbm90LXVz
ZS1pYy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9wdXQtb3ZlcnJpZGUt
c2hvdWxkLW5vdC11c2UtaWMuaHRtbAkocmV2aXNpb24gMjY4NTQ3KQorKysgTGF5b3V0VGVzdHMv
anMvZG9tL3B1dC1vdmVycmlkZS1zaG91bGQtbm90LXVzZS1pYy5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC04LDEwICs4LDEwIEBACiA8c2NyaXB0PgogICAgIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAg
ICAgIGZ1bmN0aW9uIHRyYW5zaXRpb25lZCgpIHsKLSAgICAgICAgICAgIHN0eWxlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgncCcpLnN0eWxlOworICAgICAgICAgICAgZGF0YXNldCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKS5kYXRhc2V0OwogICAgICAgICAgICAgZm9yKHZhciBpID0g
MDsgaSA8IDIwOyBpKyspCi0gICAgICAgICAgICAgICAgc3R5bGVbJ3AnK2ldID0gaTsKLSAgICAg
ICAgICAgIHJldHVybiBzdHlsZTsKKyAgICAgICAgICAgICAgICBkYXRhc2V0WydwJytpXSA9IGk7
CisgICAgICAgICAgICByZXR1cm4gZGF0YXNldDsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0
aW9uIHB1dHRlcihvKSB7CkluZGV4OiBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9u
cy1wYXJzaW5nLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmFuc2l0
aW9ucy90cmFuc2l0aW9ucy1wYXJzaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY4NTQ3KQor
KysgTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbnMtcGFyc2luZy1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTYsOCArNiw2IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEEKIFZhbGlkIHRyYW5zaXRpb24tcHJvcGVydHkgdmFsdWVzLgogUEFT
UyBjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25Qcm9wZXJ0eSBpcyAnYWxsJwogUEFTUyBjb21wdXRl
ZFN0eWxlLndlYmtpdFRyYW5zaXRpb25Qcm9wZXJ0eSBpcyAnYWxsJwotUEFTUyBPYmplY3Qua2V5
cyhzdHlsZSkuaW5kZXhPZigndHJhbnNpdGlvblByb3BlcnR5JykgaXMgbm90IC0xCi1QQVNTIE9i
amVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd3ZWJraXRUcmFuc2l0aW9uUHJvcGVydHknKSBpcyAt
MQogUEFTUyBzdHlsZS50cmFuc2l0aW9uUHJvcGVydHkgaXMgJ25vbmUnCiBQQVNTIGNvbXB1dGVk
U3R5bGUudHJhbnNpdGlvblByb3BlcnR5IGlzICdub25lJwogUEFTUyBzdHlsZS53ZWJraXRUcmFu
c2l0aW9uUHJvcGVydHkgaXMgJ25vbmUnCkBAIC0xMDAsOCArOTgsNiBAQCBQQVNTIGNvbXB1dGVk
U3R5bGUud2Via2l0VHJhbnNpdGlvblByb3BlCiBWYWxpZCB0cmFuc2l0aW9uLWR1cmF0aW9uIHZh
bHVlcy4KIFBBU1MgY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gaXMgJzBzJwogUEFT
UyBjb21wdXRlZFN0eWxlLndlYmtpdFRyYW5zaXRpb25EdXJhdGlvbiBpcyAnMHMnCi1QQVNTIE9i
amVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd0cmFuc2l0aW9uRHVyYXRpb24nKSBpcyBub3QgLTEK
LVBBU1MgT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3dlYmtpdFRyYW5zaXRpb25EdXJhdGlv
bicpIGlzIC0xCiBQQVNTIHN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiBpcyAnMHMnCiBQQVNTIGNv
bXB1dGVkU3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uIGlzICcwcycKIFBBU1Mgc3R5bGUud2Via2l0
VHJhbnNpdGlvbkR1cmF0aW9uIGlzICcwcycKQEAgLTE1MCw4ICsxNDYsNiBAQCBQQVNTIGNvbXB1
dGVkU3R5bGUud2Via2l0VHJhbnNpdGlvbkR1cmF0CiBWYWxpZCB0cmFuc2l0aW9uLXRpbWluZy1m
dW5jdGlvbiB2YWx1ZXMuCiBQQVNTIGNvbXB1dGVkU3R5bGUudHJhbnNpdGlvblRpbWluZ0Z1bmN0
aW9uIGlzICdlYXNlJwogUEFTUyBjb21wdXRlZFN0eWxlLndlYmtpdFRyYW5zaXRpb25UaW1pbmdG
dW5jdGlvbiBpcyAnZWFzZScKLVBBU1MgT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3RyYW5z
aXRpb25UaW1pbmdGdW5jdGlvbicpIGlzIG5vdCAtMQotUEFTUyBPYmplY3Qua2V5cyhzdHlsZSku
aW5kZXhPZignd2Via2l0VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uJykgaXMgLTEKIFBBU1Mgc3R5
bGUudHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIGlzICdsaW5lYXInCiBQQVNTIGNvbXB1dGVkU3R5
bGUudHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIGlzICdsaW5lYXInCiBQQVNTIHN0eWxlLndlYmtp
dFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiBpcyAnbGluZWFyJwpAQCAtMzAwLDggKzI5NCw2IEBA
IFBBU1MgY29tcHV0ZWRTdHlsZS53ZWJraXRUcmFuc2l0aW9uVGltaW4KIFZhbGlkIHRyYW5zaXRp
b24tZGVsYXkgdmFsdWVzLgogUEFTUyBjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25EZWxheSBpcyAn
MHMnCiBQQVNTIGNvbXB1dGVkU3R5bGUud2Via2l0VHJhbnNpdGlvbkRlbGF5IGlzICcwcycKLVBB
U1MgT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3RyYW5zaXRpb25EZWxheScpIGlzIG5vdCAt
MQotUEFTUyBPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZignd2Via2l0VHJhbnNpdGlvbkRlbGF5
JykgaXMgLTEKIFBBU1Mgc3R5bGUudHJhbnNpdGlvbkRlbGF5IGlzICcwcycKIFBBU1MgY29tcHV0
ZWRTdHlsZS50cmFuc2l0aW9uRGVsYXkgaXMgJzBzJwogUEFTUyBzdHlsZS53ZWJraXRUcmFuc2l0
aW9uRGVsYXkgaXMgJzBzJwpAQCAtMzUwLDggKzM0Miw2IEBAIFBBU1MgY29tcHV0ZWRTdHlsZS53
ZWJraXRUcmFuc2l0aW9uRGVsYXkKIFZhbGlkIHRyYW5zaXRpb24gc2hvcnRoYW5kIHZhbHVlcy4K
IFBBU1MgY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uIGlzICdhbGwgMHMgZWFzZSAwcycKIFBBU1Mg
Y29tcHV0ZWRTdHlsZS53ZWJraXRUcmFuc2l0aW9uIGlzICdhbGwgMHMgZWFzZSAwcycKLVBBU1Mg
T2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3RyYW5zaXRpb24nKSBpcyBub3QgLTEKLVBBU1Mg
T2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3dlYmtpdFRyYW5zaXRpb24nKSBpcyAtMQogUEFT
UyBzdHlsZS50cmFuc2l0aW9uIGlzICdub25lJwogUEFTUyBjb21wdXRlZFN0eWxlLnRyYW5zaXRp
b24gaXMgJ25vbmUgMHMgZWFzZSAwcycKIFBBU1Mgc3R5bGUud2Via2l0VHJhbnNpdGlvbiBpcyAn
bm9uZScKSW5kZXg6IExheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb25zLXBhcnNpbmcu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9ucy1w
YXJzaW5nLmh0bWwJKHJldmlzaW9uIDI2ODU0NykKKysrIExheW91dFRlc3RzL3RyYW5zaXRpb25z
L3RyYW5zaXRpb25zLXBhcnNpbmcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzAsOCArMzAsNiBA
QCBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uUHJvcGVyCiBzaG91bGRCZSgiY29t
cHV0ZWRTdHlsZS53ZWJraXRUcmFuc2l0aW9uUHJvcGVydHkiLCAiJ2FsbCciKTsKIAogc3R5bGUu
dHJhbnNpdGlvblByb3BlcnR5ID0gIm5vbmUiOwotc2hvdWxkTm90QmUoIk9iamVjdC5rZXlzKHN0
eWxlKS5pbmRleE9mKCd0cmFuc2l0aW9uUHJvcGVydHknKSIsICItMSIpOwotc2hvdWxkQmUoIk9i
amVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd3ZWJraXRUcmFuc2l0aW9uUHJvcGVydHknKSIsICIt
MSIpOwogc2hvdWxkQmUoInN0eWxlLnRyYW5zaXRpb25Qcm9wZXJ0eSIsICInbm9uZSciKTsKIHNo
b3VsZEJlKCJjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25Qcm9wZXJ0eSIsICInbm9uZSciKTsKIHNo
b3VsZEJlKCJzdHlsZS53ZWJraXRUcmFuc2l0aW9uUHJvcGVydHkiLCAiJ25vbmUnIik7CkBAIC0x
NzYsOCArMTc0LDYgQEAgc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJhbnNpdGlvbkR1cmF0aQog
c2hvdWxkQmUoImNvbXB1dGVkU3R5bGUud2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uIiwgIicwcyci
KTsKIAogc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uID0gIjBzIjsKLXNob3VsZE5vdEJlKCJPYmpl
Y3Qua2V5cyhzdHlsZSkuaW5kZXhPZigndHJhbnNpdGlvbkR1cmF0aW9uJykiLCAiLTEiKTsKLXNo
b3VsZEJlKCJPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZignd2Via2l0VHJhbnNpdGlvbkR1cmF0
aW9uJykiLCAiLTEiKTsKIHNob3VsZEJlKCJzdHlsZS50cmFuc2l0aW9uRHVyYXRpb24iLCAiJzBz
JyIpOwogc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uIiwgIicwcyci
KTsKIHNob3VsZEJlKCJzdHlsZS53ZWJraXRUcmFuc2l0aW9uRHVyYXRpb24iLCAiJzBzJyIpOwpA
QCAtMjU2LDggKzI1Miw2IEBAIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25UaW1p
bmcKIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLndlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5jdGlv
biIsICInZWFzZSciKTsKIAogc3R5bGUudHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uID0gImxpbmVh
ciI7Ci1zaG91bGROb3RCZSgiT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3RyYW5zaXRpb25U
aW1pbmdGdW5jdGlvbicpIiwgIi0xIik7Ci1zaG91bGRCZSgiT2JqZWN0LmtleXMoc3R5bGUpLmlu
ZGV4T2YoJ3dlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbicpIiwgIi0xIik7CiBzaG91bGRC
ZSgic3R5bGUudHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIiwgIidsaW5lYXInIik7CiBzaG91bGRC
ZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24iLCAiJ2xpbmVhciciKTsK
IHNob3VsZEJlKCJzdHlsZS53ZWJraXRUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb24iLCAiJ2xpbmVh
ciciKTsKQEAgLTQ4NSw4ICs0NzksNiBAQCBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0
aW9uRGVsYXkiCiBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS53ZWJraXRUcmFuc2l0aW9uRGVsYXki
LCAiJzBzJyIpOwogCiBzdHlsZS50cmFuc2l0aW9uRGVsYXkgPSAiMHMiOwotc2hvdWxkTm90QmUo
Ik9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd0cmFuc2l0aW9uRGVsYXknKSIsICItMSIpOwot
c2hvdWxkQmUoIk9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd3ZWJraXRUcmFuc2l0aW9uRGVs
YXknKSIsICItMSIpOwogc2hvdWxkQmUoInN0eWxlLnRyYW5zaXRpb25EZWxheSIsICInMHMnIik7
CiBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uRGVsYXkiLCAiJzBzJyIpOwogc2hv
dWxkQmUoInN0eWxlLndlYmtpdFRyYW5zaXRpb25EZWxheSIsICInMHMnIik7CkBAIC01NjUsOCAr
NTU3LDYgQEAgc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJhbnNpdGlvbiIsICInYQogc2hvdWxk
QmUoImNvbXB1dGVkU3R5bGUud2Via2l0VHJhbnNpdGlvbiIsICInYWxsIDBzIGVhc2UgMHMnIik7
CiAKIHN0eWxlLnRyYW5zaXRpb24gPSAibm9uZSI7Ci1zaG91bGROb3RCZSgiT2JqZWN0LmtleXMo
c3R5bGUpLmluZGV4T2YoJ3RyYW5zaXRpb24nKSIsICItMSIpOwotc2hvdWxkQmUoIk9iamVjdC5r
ZXlzKHN0eWxlKS5pbmRleE9mKCd3ZWJraXRUcmFuc2l0aW9uJykiLCAiLTEiKTsKIHNob3VsZEJl
KCJzdHlsZS50cmFuc2l0aW9uIiwgIidub25lJyIpOwogc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUu
dHJhbnNpdGlvbiIsICInbm9uZSAwcyBlYXNlIDBzJyIpOwogc2hvdWxkQmUoInN0eWxlLndlYmtp
dFRyYW5zaXRpb24iLCAiJ25vbmUnIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411481</attachid>
            <date>2020-10-15 13:46:27 -0700</date>
            <delta_ts>2020-10-15 16:48:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217623-20201015134626.patch</filename>
            <type>text/plain</type>
            <size>50973</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2ODU1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBACisyMDIwLTEwLTE1ICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIGJy
ZWFrcyBKUyBzcGVjIChwcm9wZXJ0aWVzIG5vdCBzaG93aW5nIHVwIGluIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eU5hbWVzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE3NjIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVwbGFjZSBuYW1lZCBnZXR0ZXIvc2V0dGVyIGJhc2VkIGltcGxlbWVudGF0aW9uIG9m
IGFjY2VzcyB0byBDU1NTdHlsZURlY2xhcmF0aW9uIHByb3BlcnR5IHZhbHVlcworICAgICAgICB3
aXRoIGEgZ2VuZXJhdGVkIHBhcnRpYWwgaW50ZXJmYWNlIHRoYXQgbGlzdHMgYWxsIHRoZSBwcm9w
ZXJ0aWVzIGV4YWN0bHkuCisgICAgICAgIAorICAgICAgICBUbyBrZWVwIHRoaW5ncyBjb25zaXN0
ZW50IHdpdGggZXhpc3RpbmcgYmVoYXZpb3IsIGluIGFkZGl0aW9uIHRvIHRoZSBzcGVjJ2QgcHJv
cGVydGllcywgd2UgYWxzbworICAgICAgICBtYWludGFpbiBhZGRpdGlvbmFsIHByb3BlcnRpZXMg
c3VjaCBhcyBFcHViKiAoaW4gYWRkaXRpb24gdG8gdGhlIGVwdWIqIHByb3BlcnRpZXMgdGhlIHNw
ZWMgc2F5cworICAgICAgICB3ZSBzaG91bGQpLCBhbmQgQ3NzLCBjc3MsIFBvcywgcG9zLCBQaXhl
bCwgYW5kIFBpeGVsIHByZWZpeGVkIHByb3BlcnRpZXMuIEFzIGEgZm9sbG93IHVwLCB3ZSBzaG91
bGQKKyAgICAgICAgY29uc2lkZXIgcmVtb3ZpbmcgdGhlc2UgYXMgdGhleSBhcmUgbm90IHN1cHBv
cnRlZCBieSB0aGUgc3RhbmRhcmQgb3Igb3RoZXIgYnJvd3NlcnMuCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICBHZW5lcmF0ZSBDU1NTdHls
ZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsIGFuZCBlbnN1cmUgaXQgaXMgY29tcGlsZSB0
b2dldGhlciB3aXRoIHRoZSBvdGhlcgorICAgICAgICBiaW5kaW5ncy4KKworICAgICAgICAqIGNz
cy9tYWtlcHJvcC5wbDoKKyAgICAgICAgQWRkIGdlbmVyYXRpb24gb2YgQ1NTU3R5bGVEZWNsYXJh
dGlvbitQcm9wZXJ0eU5hbWVzLmlkbCBmcm9tIENTU1Byb3BlcnRpZXMuanNvbi4KKworICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uOgorICAgICAgICBSZW1vdmUg
Q2FsbE5hbWVkU2V0dGVyT25seUZvclN1cHBvcnRlZFByb3BlcnRpZXMgYW5kIERlZmF1bHREZWZp
bmVPd25Qcm9wZXJ0eSBleHRlbmRlZCBhdHRyaWJ1dGVzLAorICAgICAgICB3aGljaCBub3cgaGF2
ZSBubyB1c2VycywgYW5kIGFkZCB0aGUgQ1NTUHJvcGVydHkgZXh0ZW5kZWQgYXR0cmlidXRlLCB1
c2VkIHRvIGF2b2lkIHVubmVjZXNzYXJ5CisgICAgICAgIGltcGxlbWVudGF0aW9uIG92ZXJoZWFk
IGZvciBlYWNoIHByb3BlcnR5LiBSYXRoZXIsIGluIGFuIGFuYWxvZ291cyB3YXkgdG8gRXZlbnRI
YW5kbGVycywgdGhlIGJpbmRpbmdzCisgICAgICAgIG5vdyBkaXJlY3RseSBwYXNzIGluIHRoZSBh
c3NvY2lhdGUgQ1NTUHJvcGVydHlJRCB0byBhbiBhcHByb3ByaWF0ZSBDU1NTdHlsZURlY2xhcmF0
aW9uIGZ1bmN0aW9uLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG06CisgICAgICAgIChHZW5lcmF0ZUludm9rZU5hbWVkUHJvcGVydHlTZXR0ZXIpOgorICAg
ICAgICAoR2VuZXJhdGVQdXQpOgorICAgICAgICAoR2VuZXJhdGVQdXRCeUluZGV4KToKKyAgICAg
ICAgKEdlbmVyYXRlRGVmaW5lT3duUHJvcGVydHkpOgorICAgICAgICBSZW1vdmUgYWxsIHVzZSBv
ZiBDYWxsTmFtZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVydGllcy4KKworICAgICAgICAo
SW5zdGFuY2VPdmVycmlkZXNEZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgIFJlbW92ZSBzdXBw
b3J0IGZvciBEZWZhdWx0RGVmaW5lT3duUHJvcGVydHksIHdoaWNoIGlzIG5vdyB1bnVzZWQuCisK
KyAgICAgICAgKFRvTWV0aG9kTmFtZSk6CisgICAgICAgIE1hdGNoIHRoZSBhY3R1YWwgc2V0dGlu
ZyBuYW1lLCBhbmQgZG9uJ3QgdHJhbnNmb3JtIG5hbWVzIHRoYXQgc3RhcnQgd2l0aCBDU1NPTS4K
KworICAgICAgICAoR2VuZXJhdGVBdHRyaWJ1dGVHZXR0ZXJCb2R5RGVmaW5pdGlvbik6CisgICAg
ICAgIChHZW5lcmF0ZUF0dHJpYnV0ZVNldHRlckJvZHlEZWZpbml0aW9uKToKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIHRoZSBuZXcgQ1NTUHJvcGVydHkgZXh0ZW5kZWQgYXR0cmlidXRlIHdoaWNo
IHVzZXMgdGhlIHBhc3NzZWQKKyAgICAgICAgdmFsdWUgdG8gdG8gZGlyZWN0bHkgY2FsbCBDU1NT
dHlsZURlY2xhcmF0aW9uIGZ1bmN0aW9ucyB3aXRoIGEgQ1NTUHJvcGVydHlJRC4KKworICAgICAg
ICAqIGNzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0
eWxlRGVjbGFyYXRpb246OnNldFByb3BlcnR5VmFsdWVJbnRlcm5hbCk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWxGb3JQb3NP
clBpeGVsUHJlZml4ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbjo6
c2V0UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZpeGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb246OmdldENTU1Byb3BlcnR5SURGcm9tSmF2YVNj
cmlwdFByb3BlcnR5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9u
OjpuYW1lZEl0ZW0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJh
dGlvbjo6c2V0TmFtZWRJdGVtKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxl
RGVjbGFyYXRpb246OnN1cHBvcnRlZFByb3BlcnR5TmFtZXMgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIGNzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmg6CisgICAgICAgIFJlcGxhY2Ugb2xkIG5h
bWVkIGdldHRlci9zZXR0ZXIgc3VwcG9ydCBjb2RlIHdpdGggbmV3IGhlbHBlcnMgd2hpY2ggb3Bl
cmF0ZSBkaXJlY3RseQorICAgICAgICBvbiBDU1NQcm9wZXJ0eUlEcy4KKworICAgICAgICAqIGNz
cy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbDoKKyAgICAgICAgVXBkYXRlIHRvIG1hdGNoIHRoZSBj
dXJyZW50IHNwZWMgKGFsbW9zdCwgc3RpbGwgbmVlZCB0byBnZXRQcm9wZXJ0eVByaW9yaXR5IHRv
IG5vdCByZXR1cm4KKyAgICAgICAgbnVsbCkgYW5kIHJlbW92ZSBjdXN0b20gbmFtZWQgZ2V0dGVy
L3NldHRlciBvcGVyYXRpb25zLgorCiAyMDIwLTEwLTE1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFw
cGxlLmNvbT4KIAogICAgICAgICBbV2ViSURMXSBCaW5kaW5ncyBkbyBub3Qgc3VwcG9ydCB0d28g
YXR0cmlidXRlcyBvciBmdW5jdGlvbnMgd2l0aCB0aGUgc2FtZSBuYW1lIG9ubHkgZGlmZmVyaW5n
IGJ5IGNhc2Ugb2YgZmlyc3QgY2hhcmFjdGVyCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2
aXNpb24gMjY4NTUxKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTE4NzksNyArMTg3OSw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAk
e1dlYkNvcmVfREUKIAogIyBHZW5lcmF0ZSBDU1MgcHJvcGVydHkgbmFtZXMKIGFkZF9jdXN0b21f
Y29tbWFuZCgKLSAgICBPVVRQVVQgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1By
b3BlcnRpZXMuanNvbiAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlO
YW1lcy5oICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVzLmNw
cCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1lcy5ncGVyZiAk
e1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVCdWlsZGVyR2VuZXJhdGVkLmNwcCAk
e1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0
aW9ucy5oICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZVByb3BlcnR5U2hvcnRo
YW5kRnVuY3Rpb25zLmNwcAorICAgIE9VVFBVVCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vQ1NTUHJvcGVydGllcy5qc29uICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQ
cm9wZXJ0eU5hbWVzLmggJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1Byb3BlcnR5
TmFtZXMuY3BwICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9wZXJ0eU5hbWVz
LmdwZXJmICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZUJ1aWxkZXJHZW5lcmF0
ZWQuY3BwICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZVByb3BlcnR5U2hvcnRo
YW5kRnVuY3Rpb25zLmggJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0eWxlUHJvcGVy
dHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9D
U1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsCiAgICAgTUFJTl9ERVBFTkRFTkNZ
ICR7V0VCQ09SRV9ESVJ9L2Nzcy9tYWtlcHJvcC5wbAogICAgIERFUEVORFMgJHtXZWJDb3JlX0NT
U19QUk9QRVJUWV9OQU1FU30KICAgICBXT1JLSU5HX0RJUkVDVE9SWSAke1dlYkNvcmVfREVSSVZF
RF9TT1VSQ0VTX0RJUn0KQEAgLTE4ODksNiArMTg4OSw3IEBAIGFkZF9jdXN0b21fY29tbWFuZCgK
IGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vQ1NTUHJvcGVydHlOYW1lcy5jcHApCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtX
ZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0eWxlQnVpbGRlckdlbmVyYXRlZC5jcHApCiBs
aXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9
L1N0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwKQorbGlzdChBUFBFTkQgV2ViQ29y
ZV9JRExfRklMRVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1N0eWxlRGVjbGFy
YXRpb24rUHJvcGVydHlOYW1lcy5pZGwpCiBBRERfU09VUkNFX1dFQkNPUkVfREVSSVZFRF9ERVBF
TkRFTkNJRVMoJHtXRUJDT1JFX0RJUn0vY3NzL0NTU1BhcnNlci5jcHAgQ1NTVmFsdWVLZXl3b3Jk
cy5oKQogCiAjIEdlbmVyYXRlIENTUyB2YWx1ZSBrZXl3b3JkcwpJbmRleDogU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHJldmlzaW9uIDI2ODU1
MSkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CSh3
b3JraW5nIGNvcHkpCkBAIC0zLDYgKzMsNyBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9CeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5QnVpbHRpbnMuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTUHJvcGVydHlOYW1lcy5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1Byb3BlcnR5TmFtZXMuaAor
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ1NTU3R5bGVEZWNs
YXJhdGlvbitQcm9wZXJ0eU5hbWVzLmlkbAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvQ1NTVmFsdWVLZXl3b3Jkcy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1ZhbHVlS2V5d29yZHMuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvQ29sb3JEYXRhLmNwcApAQCAtMjkwLDYg
KzI5MSw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWIKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTUnVsZS5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU1J1bGVMaXN0LmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NSdWxl
TGlzdC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NT
U1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbitQcm9wZXJ0eU5h
bWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NT
U3R5bGVEZWNsYXJhdGlvbi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbi5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU1N0eWxlUnVsZS5jcHAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjY4NTUxKQorKysgU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTMyNyw2ICsxMzI3LDcgQEAg
SlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkveG1sL1hQYXRoUmVzdWx0LmlkbCBc
CiAgICAgJChXZWJDb3JlKS94bWwvWFNMVFByb2Nlc3Nvci5pZGwgXAogICAgIEludGVybmFsU2V0
dGluZ3NHZW5lcmF0ZWQuaWRsIFwKKyAgICBDU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFt
ZXMuaWRsIFwKICMKIAogIyAtLS0tLS0tLQpAQCAtMTQxOCw2ICsxNDE5LDcgQEAgYWxsIDogXAog
ICAgIFN0eWxlQnVpbGRlckdlbmVyYXRlZC5jcHAgXAogICAgIFN0eWxlUHJvcGVydHlTaG9ydGhh
bmRGdW5jdGlvbnMuY3BwIFwKICAgICBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmgg
XAorICAgIENTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5pZGwgXAogICAgIFVzZXJB
Z2VudFN0eWxlU2hlZXRzLmggXAogICAgIFdlYktpdEZvbnRGYW1pbHlOYW1lcy5jcHAgXAogICAg
IFdlYktpdEZvbnRGYW1pbHlOYW1lcy5oIFwKQEAgLTE0NDUsNiArMTQ0Nyw3IEBAIENTU19QUk9Q
RVJUWV9OQU1FX0ZJTEVTID0gXAogICAgIFN0eWxlQnVpbGRlckdlbmVyYXRlZC5jcHAgXAogICAg
IFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwIFwKICAgICBTdHlsZVByb3BlcnR5
U2hvcnRoYW5kRnVuY3Rpb25zLmggXAorICAgIENTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVydHlO
YW1lcy5pZGwgXAogIwogQ1NTX1BST1BFUlRZX05BTUVfRklMRVNfUEFUVEVSTlMgPSAkKHN1YnN0
IC4sJSwkKENTU19QUk9QRVJUWV9OQU1FX0ZJTEVTKSkKIApJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDI2
ODU1MSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xMTg3LDE1ICsxMTg3LDEyIEBAIHN1YiBHZW5lcmF0ZUlu
dm9rZU5hbWVkUHJvcGVydHlTZXR0ZXIKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQg
LiAiYXV0byBuYXRpdmVWYWx1ZSA9ICR7bmF0aXZlVmFsdWV9O1xuIik7CiAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAkaW5kZW50IC4gIlJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1
ZSk7XG4iKTsKIAotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJib29sIGlzUHJv
cGVydHlTdXBwb3J0ZWQgPSB0cnVlO1xuIikgaWYgJG5hbWVkU2V0dGVyT3BlcmF0aW9uLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPntDYWxsTmFtZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVydGll
c307Ci0KICAgICBteSAkbmFtZWRTZXR0ZXJGdW5jdGlvbk5hbWUgPSAkbmFtZWRTZXR0ZXJPcGVy
YXRpb24tPm5hbWUgfHwgInNldE5hbWVkSXRlbSI7CiAgICAgbXkgJG5hdGl2ZVZhbHVlUGFzc0V4
cHJlc3Npb24gPSBQYXNzQXJndW1lbnRFeHByZXNzaW9uKCJuYXRpdmVWYWx1ZSIsICRhcmd1bWVu
dCk7CiAKICAgICBteSBAYXJndW1lbnRzID0gKCk7CiAgICAgcHVzaChAYXJndW1lbnRzLCAicHJv
cGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSIpOwogICAgIHB1c2goQGFyZ3VtZW50cywg
JG5hdGl2ZVZhbHVlUGFzc0V4cHJlc3Npb24pOwotICAgIHB1c2goQGFyZ3VtZW50cywgImlzUHJv
cGVydHlTdXBwb3J0ZWQiKSBpZiAkbmFtZWRTZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmli
dXRlcy0+e0NhbGxOYW1lZFNldHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9wZXJ0aWVzfTsKIAogICAg
IG15ICRmdW5jdGlvblN0cmluZyA9ICJ0aGlzT2JqZWN0LT53cmFwcGVkKCkuJHtuYW1lZFNldHRl
ckZ1bmN0aW9uTmFtZX0oIiAuIGpvaW4oIiwgIiwgQGFyZ3VtZW50cykgLiAiKSI7CiAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gImludm9rZUZ1bmN0b3JQcm9wYWdhdGluZ0V4Y2Vw
dGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geyBy
ZXR1cm4gJHtmdW5jdGlvblN0cmluZ307IH0pO1xuIik7CkBAIC0xMjUwLDEwICsxMjQ3LDYgQEAg
c3ViIEdlbmVyYXRlUHV0CiAgICAgICAgIH0KIAogICAgICAgICBHZW5lcmF0ZUludm9rZU5hbWVk
UHJvcGVydHlTZXR0ZXIoJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgICAg
ICIsICRpbnRlcmZhY2UsICRuYW1lZFNldHRlck9wZXJhdGlvbiwgInZhbHVlIik7Ci0gICAgICAg
IGlmICgkbmFtZWRTZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NhbGxOYW1l
ZFNldHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9wZXJ0aWVzfSkgewotICAgICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgICAgIGlmICghaXNQcm9wZXJ0
eVN1cHBvcnRlZClcbiIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkYWRkaXRp
b25hbEluZGVudCAuICIgICAgICAgICAgICByZXR1cm4gSlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0
LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNs
b3QpO1xuIik7Ci0gICAgICAgIH0KICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkYWRkaXRp
b25hbEluZGVudCAuICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAKICAgICAgICAgaWYgKCEk
bGVnYWN5T3ZlcnJpZGVCdWlsdGlucykgewpAQCAtMTI4Niw3ICsxMjc5LDcgQEAgc3ViIEdlbmVy
YXRlUHV0QnlJbmRleAogICAgIG15ICRpbmRleGVkU2V0dGVyT3BlcmF0aW9uID0gR2V0SW5kZXhl
ZFNldHRlck9wZXJhdGlvbigkaW50ZXJmYWNlKTsKICAgICAKICAgICBteSAkbGVnYWN5T3ZlcnJp
ZGVCdWlsdGlucyA9ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0V4dGVuZGVkQXR0cmlidXRlKCRp
bnRlcmZhY2UsICJMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIik7Ci0gICAgbXkgJGVsbGlkZXNDYWxs
c1RvQmFzZSA9ICgkbmFtZWRTZXR0ZXJPcGVyYXRpb24gJiYgJGxlZ2FjeU92ZXJyaWRlQnVpbHRp
bnMpICYmICEkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntQbHVnaW59ICYmICEkbmFt
ZWRTZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NhbGxOYW1lZFNldHRlck9u
bHlGb3JTdXBwb3J0ZWRQcm9wZXJ0aWVzfTsKKyAgICBteSAkZWxsaWRlc0NhbGxzVG9CYXNlID0g
KCRuYW1lZFNldHRlck9wZXJhdGlvbiAmJiAkbGVnYWN5T3ZlcnJpZGVCdWlsdGlucykgJiYgISRp
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e1BsdWdpbn07CiAgICAgCiAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiYm9vbCAke2NsYXNzTmFtZX06OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxs
LCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgdW5zaWduZWQgaW5kZXgsIEpT
VmFsdWUgdmFsdWUsIGJvb2wiIC4gKCEkZWxsaWRlc0NhbGxzVG9CYXNlID8gIiBzaG91bGRUaHJv
dyIgOiAiIikgLiAiKVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7CkBAIC0x
MzI4LDEwICsxMzIxLDYgQEAgc3ViIEdlbmVyYXRlUHV0QnlJbmRleAogICAgICAgICB9CiAgICAg
ICAgIAogICAgICAgICBHZW5lcmF0ZUludm9rZU5hbWVkUHJvcGVydHlTZXR0ZXIoJG91dHB1dEFy
cmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgIiwgJGludGVyZmFjZSwgJG5hbWVkU2V0dGVy
T3BlcmF0aW9uLCAidmFsdWUiKTsKLSAgICAgICAgaWYgKCRuYW1lZFNldHRlck9wZXJhdGlvbi0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q2FsbE5hbWVkU2V0dGVyT25seUZvclN1cHBvcnRlZFByb3Bl
cnRpZXN9KSB7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5k
ZW50IC4gIiAgICBpZiAoIWlzUHJvcGVydHlTdXBwb3J0ZWQpXG4iKTsKLSAgICAgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgJGFkZGl0aW9uYWxJbmRlbnQgLiAiICAgICAgICByZXR1cm4gSlNP
YmplY3Q6OnB1dEJ5SW5kZXgoY2VsbCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgaW5kZXgsIHZhbHVl
LCBzaG91bGRUaHJvdyk7XG4iKTsKLSAgICAgICAgfQogICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICRhZGRpdGlvbmFsSW5kZW50IC4gIiAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAgICAgICAK
ICAgICAgICAgaWYgKCEkbGVnYWN5T3ZlcnJpZGVCdWlsdGlucykgewpAQCAtMTQ3NSwxMCArMTQ2
NCw3IEBAIHN1YiBHZW5lcmF0ZURlZmluZU93blByb3BlcnR5CiAgICAgICAgICAgICAKICAgICAg
ICAgICAgICMgMi4yLjIuIEludm9rZSB0aGUgbmFtZWQgcHJvcGVydHkgc2V0dGVyIHdpdGggUCBh
bmQgRGVzYy5bW1ZhbHVlXV0uCiAgICAgICAgICAgICBHZW5lcmF0ZUludm9rZU5hbWVkUHJvcGVy
dHlTZXR0ZXIoJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgICAgICIsICRp
bnRlcmZhY2UsICRuYW1lZFNldHRlck9wZXJhdGlvbiwgInByb3BlcnR5RGVzY3JpcHRvci52YWx1
ZSgpIik7Ci0gICAgICAgICAgICBpZiAoJG5hbWVkU2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPntDYWxsTmFtZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVydGllc30pIHsK
LSAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50IC4g
IiAgICBpZiAoIWlzUHJvcGVydHlTdXBwb3J0ZWQpXG4iKTsKLSAgICAgICAgICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50IC4gIiAgICAgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3QsIHByb3Bl
cnR5TmFtZSwgcHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7XG4iKTsKLSAgICAgICAg
ICAgIH0KKwogICAgICAgICAgICAgIyAyLjIuMy4gUmV0dXJuIHRydWUuCiAgICAgICAgICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50IC4gIiAgICAgICAgcmV0dXJuIHRy
dWU7XG4iKTsKICAgICAgICAgfQpAQCAtMjIwNCw4ICsyMTkwLDYgQEAgc3ViIEluc3RhbmNlT3Zl
cnJpZGVzRGVmaW5lT3duUHJvcGVydHkKIHsKICAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CiAK
LSAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntEZWZhdWx0
RGVmaW5lT3duUHJvcGVydHl9OwotCiAgICAgcmV0dXJuICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0
cmlidXRlcy0+e0N1c3RvbURlZmluZU93blByb3BlcnR5fQogICAgICAgICB8fCBHZXRJbmRleGVk
U2V0dGVyT3BlcmF0aW9uKCRpbnRlcmZhY2UpCiAgICAgICAgIHx8IEdldE5hbWVkU2V0dGVyT3Bl
cmF0aW9uKCRpbnRlcmZhY2UpOwpAQCAtMzk3OSw2ICszOTYzLDkgQEAgc3ViIEdldFNraXBWVGFi
bGVWYWxpZGF0aW9uRm9ySW50ZXJmYWNlCiBzdWIgVG9NZXRob2ROYW1lCiB7CiAgICAgbXkgJHBh
cmFtID0gc2hpZnQ7CisgICAgCisgICAgcmV0dXJuICRwYXJhbSBpZiAkcGFyYW0gPX4gL15DU1NP
TS87CisKICAgICBteSAkcmV0ID0gbGNmaXJzdCgkcGFyYW0pOwogICAgICRyZXQgPX4gcy9jU1Mv
Y3NzLyBpZiAkcmV0ID1+IC9eY1NTLzsKICAgICAkcmV0ID1+IHMvZE9NL2RvbS8gaWYgJHJldCA9
fiAvXmRPTS87CkBAIC01MzIyLDYgKzUzMDksMTUgQEAgc3ViIEdlbmVyYXRlQXR0cmlidXRlR2V0
dGVyQm9keURlZmluaXRpbwogICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTIiAuICRj
b25zdHJ1Y3RvclR5cGUgLiAiLmgiLCAkY29uZGl0aW9uYWwpOwogICAgICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIHJldHVybiBKUyIgLiAkY29uc3RydWN0b3JUeXBlIC4gIjo6JHtj
b25zdHJ1Y3RvckdldHRlcn0oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNP
YmplY3QuZ2xvYmFsT2JqZWN0KCkpO1xuIik7CiAgICAgICAgIH0KKyAgICB9IGVsc2lmICgkYXR0
cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDU1NQcm9wZXJ0eX0pIHsKKyAgICAgICAgJGlt
cGxJbmNsdWRlc3siQ1NTUHJvcGVydHlOYW1lcy5oIn0gPSAxOworICAgICAgICBteSAkcHJvcGVy
dHlJRCA9ICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NTU1Byb3BlcnR5fTsKKyAg
ICAgICAgCisgICAgICAgIG15ICRnZXR0ZXJOYW1lID0gJGF0dHJpYnV0ZS0+dHlwZS0+aXNVbmlv
biA/ICJnZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWxGb3JQb3NPclBpeGVsUHJlZml4ZWQiIDogImdl
dFByb3BlcnR5VmFsdWVJbnRlcm5hbCI7CisgICAgICAgIAorICAgICAgICBteSAkdG9KU0V4cHJl
c3Npb24gPSBOYXRpdmVUb0pTVmFsdWVVc2luZ1JlZmVyZW5jZXMoJGF0dHJpYnV0ZSwgJGludGVy
ZmFjZSwgImltcGwuJHtnZXR0ZXJOYW1lfShDU1NQcm9wZXJ0eSR7cHJvcGVydHlJRH0pIiwgIip0
aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICBhdXRvJiBpbXBsID0gdGhpc09iamVjdC53cmFwcGVkKCk7XG4iKTsKKyAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoJHt0
b0pTRXhwcmVzc2lvbn0pKTtcbiIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICgkYXR0cmli
dXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDYWNoZWRBdHRyaWJ1dGV9KSB7CiAgICAgICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKEpTVmFsdWUgY2FjaGVkVmFsdWUgPSB0aGlz
T2JqZWN0Lm1fIiAuICRhdHRyaWJ1dGUtPm5hbWUgLiAiLmdldCgpKVxuIik7CkBAIC01NDY2LDYg
KzU0NjIsMjMgQEAgc3ViIEdlbmVyYXRlQXR0cmlidXRlU2V0dGVyQm9keURlZmluaXRpbwogICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgdm0uaGVhcC53cml0ZUJhcnJpZXIoJnRoaXNP
YmplY3QsIHZhbHVlKTtcbiIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgZW5z
dXJlU3RpbGxBbGl2ZUhlcmUodmFsdWUpO1xuXG4iKTsKICAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIHJldHVybiB0cnVlO1xuIik7CisgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Q1NTUHJvcGVydHl9KSB7CisgICAgICAgICRpbXBsSW5jbHVkZXN7
IkNTU1Byb3BlcnR5TmFtZXMuaCJ9ID0gMTsKKworICAgICAgICBteSAkcHJvcGVydHlJRCA9ICRh
dHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NTU1Byb3BlcnR5fTsKKyAgICAgICAgCisg
ICAgICAgIG15ICRzZXR0ZXJOYW1lID0gJGF0dHJpYnV0ZS0+dHlwZS0+aXNVbmlvbiA/ICJzZXRQ
cm9wZXJ0eVZhbHVlSW50ZXJuYWxGb3JQb3NPclBpeGVsUHJlZml4ZWQiIDogInNldFByb3BlcnR5
VmFsdWVJbnRlcm5hbCI7CisgICAgICAgIAorICAgICAgICBteSAkZXhjZXB0aW9uVGhyb3dlciA9
IEdldEF0dHJpYnV0ZUV4Y2VwdGlvblRocm93ZXIoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7Cisg
ICAgICAgIG15ICR0b05hdGl2ZUV4cHJlc3Npb24gPSBKU1ZhbHVlVG9OYXRpdmUoJGludGVyZmFj
ZSwgJGF0dHJpYnV0ZSwgInZhbHVlIiwgJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Q29uZGl0aW9uYWx9LCAiJmxleGljYWxHbG9iYWxPYmplY3QiLCAibGV4aWNhbEdsb2JhbE9iamVj
dCIsICJ0aGlzT2JqZWN0IiwgIip0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpIiwgJGV4Y2VwdGlv
blRocm93ZXIpOworCisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvJiBpbXBs
ID0gdGhpc09iamVjdC53cmFwcGVkKCk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgIGF1dG8gbmF0aXZlVmFsdWUgPSAke3RvTmF0aXZlRXhwcmVzc2lvbn07XG4iKTsKKyAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dT
Y29wZSwgZmFsc2UpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBBdHRy
aWJ1dGVTZXR0ZXI6OmNhbGwobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHtc
biIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBpbXBsLiR7
c2V0dGVyTmFtZX0oQ1NTUHJvcGVydHkke3Byb3BlcnR5SUR9LCBXVEZNb3ZlKG5hdGl2ZVZhbHVl
KSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH0pO1xuIik7CisgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAgIH0gZWxz
aWYgKCRpc0NvbnN0cnVjdG9yKSB7CiAgICAgICAgIG15ICRjb25zdHJ1Y3RvclR5cGUgPSAkYXR0
cmlidXRlLT50eXBlLT5uYW1lOwogICAgICAgICAkY29uc3RydWN0b3JUeXBlID1+IHMvQ29uc3Ry
dWN0b3IkLy87CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJp
YnV0ZXMuanNvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0lETEF0dHJpYnV0ZXMuanNvbgkocmV2aXNpb24gMjY4NTUxKQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24JKHdvcmtpbmcgY29weSkKQEAgLTM5
LDYgKzM5LDEwIEBACiAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2h0bWwuc3BlYy53
aGF0d2cub3JnL211bHRpcGFnZS9jdXN0b20tZWxlbWVudHMuaHRtbCNjZXJlYWN0aW9ucyIKICAg
ICAgICAgICAgIH0KICAgICAgICAgfSwKKyAgICAgICAgIkNTU1Byb3BlcnR5IjogeworICAgICAg
ICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiYXR0cmlidXRlIl0sCisgICAgICAgICAgICAidmFs
dWVzIjogWyIqIl0KKyAgICAgICAgfSwKICAgICAgICAgIkNhY2hlZEF0dHJpYnV0ZSI6IHsKICAg
ICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImF0dHJpYnV0ZSJdCiAgICAgICAgIH0sCkBA
IC00OSw5ICs1Myw2IEBACiAgICAgICAgICJDYWxsYmFja1RoaXNPYmplY3QiOiB7CiAgICAgICAg
ICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJjYWxsYmFjay1mdW5jdGlvbiIsICJvcGVyYXRpb24i
XQogICAgICAgICB9LAotICAgICAgICAiQ2FsbE5hbWVkU2V0dGVyT25seUZvclN1cHBvcnRlZFBy
b3BlcnRpZXMiOiB7Ci0gICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJvcGVyYXRpb24i
XQotICAgICAgICB9LAogICAgICAgICAiQ2FsbFdpdGgiOiB7CiAgICAgICAgICAgICAiY29udGV4
dHNBbGxvd2VkIjogWyJhdHRyaWJ1dGUiLCAib3BlcmF0aW9uIl0sCiAgICAgICAgICAgICAidmFs
dWVzIjogWyJEb2N1bWVudCIsICJFeGVjU3RhdGUiLCAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dCIs
ICJHbG9iYWxPYmplY3QiLCAiQWN0aXZlV2luZG93IiwgIkZpcnN0V2luZG93IiwgIlJlc3BvbnNp
YmxlRG9jdW1lbnQiLCAiV29ybGQiXSwKQEAgLTE1Nyw5ICsxNTgsNiBAQAogICAgICAgICAiRGVm
YXVsdCI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbIm9wZXJhdGlvbiJdCiAg
ICAgICAgIH0sCi0gICAgICAgICJEZWZhdWx0RGVmaW5lT3duUHJvcGVydHkiOiB7Ci0gICAgICAg
ICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJpbnRlcmZhY2UiXQotICAgICAgICB9LAogICAgICAg
ICAiRGlzYWJsZWRCeVF1aXJrIjogewogICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsi
aW50ZXJmYWNlIiwgImRpY3Rpb25hcnkiLCAiZW51bSIsICJhdHRyaWJ1dGUiLCAib3BlcmF0aW9u
IiwgImNvbnN0YW50IiwgImRpY3Rpb25hcnktbWVtYmVyIiwgImluY2x1ZGVzIl0sCiAgICAgICAg
ICAgICAidmFsdWVzIjogWyIqIl0sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
RGVjbGFyYXRpb24uY3BwCShyZXZpc2lvbiAyNjg1NTEpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2OCw0OCArMjY4LDgg
QEAgc3RhdGljIENTU1Byb3BlcnR5SW5mbyBwcm9wZXJ0eUluZm9Gcm9tSgogCiB9CiAKLUNTU1By
b3BlcnR5SUQgQ1NTU3R5bGVEZWNsYXJhdGlvbjo6Z2V0Q1NTUHJvcGVydHlJREZyb21KYXZhU2Ny
aXB0UHJvcGVydHlOYW1lKGNvbnN0IEF0b21TdHJpbmcmIHByb3BlcnR5TmFtZSkKLXsKLSAgICBy
ZXR1cm4gcHJvcGVydHlJbmZvRnJvbUphdmFTY3JpcHRDU1NQcm9wZXJ0eU5hbWUocHJvcGVydHlO
YW1lLCBudWxscHRyKS5wcm9wZXJ0eUlEOwotfQotCi1PcHRpb25hbDxWYXJpYW50PFN0cmluZywg
ZG91YmxlPj4gQ1NTU3R5bGVEZWNsYXJhdGlvbjo6bmFtZWRJdGVtKGNvbnN0IEF0b21TdHJpbmcm
IHByb3BlcnR5TmFtZSkKK0V4Y2VwdGlvbk9yPHZvaWQ+IENTU1N0eWxlRGVjbGFyYXRpb246OnNl
dFByb3BlcnR5VmFsdWVJbnRlcm5hbChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIFN0cmluZyB2
YWx1ZSkKIHsKLSAgICBhdXRvKiBzZXR0aW5ncyA9IHBhcmVudEVsZW1lbnQoKSA/ICZwYXJlbnRF
bGVtZW50KCktPmRvY3VtZW50KCkuc2V0dGluZ3MoKSA6IG51bGxwdHI7Ci0gICAgYXV0byBwcm9w
ZXJ0eUluZm8gPSBwcm9wZXJ0eUluZm9Gcm9tSmF2YVNjcmlwdENTU1Byb3BlcnR5TmFtZShwcm9w
ZXJ0eU5hbWUsIHNldHRpbmdzKTsKLSAgICBpZiAoIXByb3BlcnR5SW5mby5wcm9wZXJ0eUlEKQot
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgYXV0byB2YWx1ZSA9IGdldFByb3Bl
cnR5Q1NTVmFsdWVJbnRlcm5hbChwcm9wZXJ0eUluZm8ucHJvcGVydHlJRCk7Ci0gICAgaWYgKCF2
YWx1ZSkgewotICAgICAgICAvLyBJZiB0aGUgcHJvcGVydHkgaXMgYSBzaG9ydGhhbmQgcHJvcGVy
dHkgKHN1Y2ggYXMgInBhZGRpbmciKSwgaXQgY2FuIG9ubHkgYmUgYWNjZXNzZWQgdXNpbmcgZ2V0
UHJvcGVydHlWYWx1ZS4KLSAgICAgICAgcmV0dXJuIFZhcmlhbnQ8U3RyaW5nLCBkb3VibGU+IHsg
Z2V0UHJvcGVydHlWYWx1ZUludGVybmFsKHByb3BlcnR5SW5mby5wcm9wZXJ0eUlEKSB9OwotICAg
IH0KLSAgICAKLSAgICBpZiAocHJvcGVydHlJbmZvLmhhZFBpeGVsT3JQb3NQcmVmaXggJiYgaXM8
Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkpIHsKLSAgICAgICAgLy8gQ2FsbCB0aGlzIHZlcnNp
b24gb2YgdGhlIGdldHRlciBzbyB0aGF0LCBlLmcuLCBwaXhlbFRvcCByZXR1cm5zIHRvcCBhcyBh
IG51bWJlcgotICAgICAgICAvLyBpbiBwaXhlbCB1bml0cyBhbmQgcG9zVG9wIHNob3VsZCBkb2Vz
IHRoZSBzYW1lIF9pZl8gdGhpcyBpcyBhIHBvc2l0aW9uZWQgZWxlbWVudC4KLSAgICAgICAgLy8g
RklYTUU6IElmIG5vdCBhIHBvc2l0aW9uZWQgZWxlbWVudCwgTVNJRSBkb2N1bWVudGF0aW9uIHNh
eXMgcG9zVG9wIHNob3VsZCByZXR1cm4gMDsgdGhpcyBydWxlIGlzIG5vdCBpbXBsZW1lbnRlZC4K
LSAgICAgICAgcmV0dXJuIFZhcmlhbnQ8U3RyaW5nLCBkb3VibGU+IHsgZG93bmNhc3Q8Q1NTUHJp
bWl0aXZlVmFsdWU+KCp2YWx1ZSkuZmxvYXRWYWx1ZShDU1NVbml0VHlwZTo6Q1NTX1BYKSB9Owot
ICAgIH0KLQotICAgIHJldHVybiBWYXJpYW50PFN0cmluZywgZG91YmxlPiB7IHZhbHVlLT5jc3NU
ZXh0KCkgfTsKLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gQ1NTU3R5bGVEZWNsYXJhdGlvbjo6c2V0
TmFtZWRJdGVtKGNvbnN0IEF0b21TdHJpbmcmIHByb3BlcnR5TmFtZSwgU3RyaW5nIHZhbHVlLCBi
b29sJiBwcm9wZXJ0eVN1cHBvcnRlZCkKLXsKLSAgICBhdXRvKiBzZXR0aW5ncyA9IHBhcmVudEVs
ZW1lbnQoKSA/ICZwYXJlbnRFbGVtZW50KCktPmRvY3VtZW50KCkuc2V0dGluZ3MoKSA6IG51bGxw
dHI7Ci0gICAgYXV0byBwcm9wZXJ0eUluZm8gPSBwcm9wZXJ0eUluZm9Gcm9tSmF2YVNjcmlwdENT
U1Byb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUsIHNldHRpbmdzKTsKLSAgICBpZiAoIXByb3BlcnR5
SW5mby5wcm9wZXJ0eUlEKSB7Ci0gICAgICAgIHByb3BlcnR5U3VwcG9ydGVkID0gZmFsc2U7Ci0g
ICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotCi0gICAgcHJvcGVydHlTdXBwb3J0ZWQgPSB0cnVl
OwotCi0gICAgaWYgKHByb3BlcnR5SW5mby5oYWRQaXhlbE9yUG9zUHJlZml4KQotICAgICAgICB2
YWx1ZS5hcHBlbmQoInB4Iik7Ci0KICAgICBib29sIGltcG9ydGFudCA9IGZhbHNlOwogICAgIGlm
IChEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNob3VsZFJlc3BlY3RQcmlvcml0eUluQ1NTQXR0
cmlidXRlU2V0dGVycygpKSB7CiAgICAgICAgIGF1dG8gaW1wb3J0YW50SW5kZXggPSB2YWx1ZS5m
aW5kSWdub3JpbmdBU0NJSUNhc2UoIiFpbXBvcnRhbnQiKTsKQEAgLTMxOSwzOCArMjc5LDQzIEBA
IEV4Y2VwdGlvbk9yPHZvaWQ+IENTU1N0eWxlRGVjbGFyYXRpb246OnMKICAgICAgICAgfQogICAg
IH0KIAotICAgIGF1dG8gc2V0UHJvcGVydHlJbnRlcm5hbFJlc3VsdCA9IHNldFByb3BlcnR5SW50
ZXJuYWwocHJvcGVydHlJbmZvLnByb3BlcnR5SUQsIHZhbHVlLCBpbXBvcnRhbnQpOworICAgIGF1
dG8gc2V0UHJvcGVydHlJbnRlcm5hbFJlc3VsdCA9IHNldFByb3BlcnR5SW50ZXJuYWwocHJvcGVy
dHlJRCwgdmFsdWUsIGltcG9ydGFudCk7CiAgICAgaWYgKHNldFByb3BlcnR5SW50ZXJuYWxSZXN1
bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBzZXRQcm9wZXJ0eUludGVybmFsUmVz
dWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKIAogICAgIHJldHVybiB7IH07CiB9CiAKLVZlY3RvcjxB
dG9tU3RyaW5nPiBDU1NTdHlsZURlY2xhcmF0aW9uOjpzdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkg
Y29uc3QKK1ZhcmlhbnQ8ZG91YmxlLCBTdHJpbmc+IENTU1N0eWxlRGVjbGFyYXRpb246OmdldFBy
b3BlcnR5VmFsdWVJbnRlcm5hbEZvclBvc09yUGl4ZWxQcmVmaXhlZChDU1NQcm9wZXJ0eUlEIHBy
b3BlcnR5SUQpCiB7Ci0gICAgc3RhdGljIHVuc2lnbmVkIG51bU5hbWVzID0gMDsKLSAgICBzdGF0
aWMgY29uc3QgQXRvbVN0cmluZyogY29uc3QgY3NzUHJvcGVydHlOYW1lcyA9IFtdIHsKLSAgICAg
ICAgU3RyaW5nIG5hbWVzW251bUNTU1Byb3BlcnRpZXNdOwotICAgICAgICBmb3IgKGludCBpID0g
MDsgaSA8IG51bUNTU1Byb3BlcnRpZXM7ICsraSkgewotICAgICAgICAgICAgQ1NTUHJvcGVydHlJ
RCBpZCA9IHN0YXRpY19jYXN0PENTU1Byb3BlcnR5SUQ+KGZpcnN0Q1NTUHJvcGVydHkgKyBpKTsK
LSAgICAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgdGFrZSBhY2NvdW50IGZvciBmbGFncyBpbiBz
ZXR0aW5ncygpLgotICAgICAgICAgICAgaWYgKGlzRW5hYmxlZENTU1Byb3BlcnR5KGlkKSkKLSAg
ICAgICAgICAgICAgICBuYW1lc1tudW1OYW1lcysrXSA9IGdldEpTUHJvcGVydHlOYW1lKGlkKTsK
LSAgICAgICAgfQotICAgICAgICBzdGQ6OnNvcnQoJm5hbWVzWzBdLCAmbmFtZXNbbnVtTmFtZXNd
LCBXVEY6OmNvZGVQb2ludENvbXBhcmVMZXNzVGhhbik7Ci0gICAgICAgIGF1dG8qIGlkZW50aWZp
ZXJzID0gbmV3IEF0b21TdHJpbmdbbnVtTmFtZXNdOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbnVtTmFtZXM7ICsraSkKLSAgICAgICAgICAgIGlkZW50aWZpZXJzW2ldID0gbmFt
ZXNbaV07Ci0gICAgICAgIHJldHVybiBpZGVudGlmaWVyczsKLSAgICB9KCk7CisgICAgYXV0byB2
YWx1ZSA9IGdldFByb3BlcnR5Q1NTVmFsdWVJbnRlcm5hbChwcm9wZXJ0eUlEKTsKKyAgICBpZiAo
IXZhbHVlKSB7CisgICAgICAgIC8vIElmIHRoZSBwcm9wZXJ0eSBpcyBhIHNob3J0aGFuZCBwcm9w
ZXJ0eSAoc3VjaCBhcyAicGFkZGluZyIpLCBpdCBjYW4gb25seSBiZSBhY2Nlc3NlZCB1c2luZyBn
ZXRQcm9wZXJ0eVZhbHVlLgorICAgICAgICByZXR1cm4gZ2V0UHJvcGVydHlWYWx1ZUludGVybmFs
KHByb3BlcnR5SUQpOworICAgIH0KKyAgICAKKyAgICBpZiAoaXM8Q1NTUHJpbWl0aXZlVmFsdWU+
KCp2YWx1ZSkpIHsKKyAgICAgICAgLy8gQ2FsbCB0aGlzIHZlcnNpb24gb2YgdGhlIGdldHRlciBz
byB0aGF0LCBlLmcuLCBwaXhlbFRvcCByZXR1cm5zIHRvcCBhcyBhIG51bWJlcgorICAgICAgICAv
LyBpbiBwaXhlbCB1bml0cyBhbmQgcG9zVG9wIHNob3VsZCBkb2VzIHRoZSBzYW1lIF9pZl8gdGhp
cyBpcyBhIHBvc2l0aW9uZWQgZWxlbWVudC4KKyAgICAgICAgLy8gRklYTUU6IElmIG5vdCBhIHBv
c2l0aW9uZWQgZWxlbWVudCwgTVNJRSBkb2N1bWVudGF0aW9uIHNheXMgcG9zVG9wIHNob3VsZCBy
ZXR1cm4gMDsgdGhpcyBydWxlIGlzIG5vdCBpbXBsZW1lbnRlZC4KKyAgICAgICAgcmV0dXJuIGRv
d25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLmZsb2F0VmFsdWUoQ1NTVW5pdFR5cGU6
OkNTU19QWCk7CisgICAgfQogCi0gICAgVmVjdG9yPEF0b21TdHJpbmc+IHJlc3VsdDsKLSAgICBy
ZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShudW1OYW1lcyk7CisgICAgcmV0dXJuIHZhbHVl
LT5jc3NUZXh0KCk7Cit9CiAKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtTmFtZXM7
ICsraSkKLSAgICAgICAgcmVzdWx0LnVuY2hlY2tlZEFwcGVuZChjc3NQcm9wZXJ0eU5hbWVzW2ld
KTsKK0V4Y2VwdGlvbk9yPHZvaWQ+IENTU1N0eWxlRGVjbGFyYXRpb246OnNldFByb3BlcnR5VmFs
dWVJbnRlcm5hbEZvclBvc09yUGl4ZWxQcmVmaXhlZChDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQs
IFZhcmlhbnQ8ZG91YmxlLCBTdHJpbmc+IHZhbHVlKQoreworICAgIFN0cmluZyBzdHJpbmdWYWx1
ZSA9IFdURjo6c3dpdGNoT24odmFsdWUsIFsmXSAoY29uc3QgYXV0byYgaW5wdXQpIHsKKyAgICAg
ICAgcmV0dXJuIG1ha2VTdHJpbmcoaW5wdXQsICJweCIpOworICAgIH0pOwogCi0gICAgcmV0dXJu
IHJlc3VsdDsKKyAgICByZXR1cm4gc2V0UHJvcGVydHlWYWx1ZUludGVybmFsKHByb3BlcnR5SUQs
IFdURk1vdmUoc3RyaW5nVmFsdWUpKTsKK30KKworQ1NTUHJvcGVydHlJRCBDU1NTdHlsZURlY2xh
cmF0aW9uOjpnZXRDU1NQcm9wZXJ0eUlERnJvbUphdmFTY3JpcHRQcm9wZXJ0eU5hbWUoY29uc3Qg
QXRvbVN0cmluZyYgcHJvcGVydHlOYW1lKQoreworICAgIHJldHVybiBwcm9wZXJ0eUluZm9Gcm9t
SmF2YVNjcmlwdENTU1Byb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUsIG51bGxwdHIpLnByb3BlcnR5
SUQ7CiB9CiAKIFN0cmluZyBDU1NTdHlsZURlY2xhcmF0aW9uOjpjc3NGbG9hdCgpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmgJKHJldmlzaW9uIDI2ODU1MSkK
KysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTcyLDEyICs3MiwxMiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIENTU1N0eWxlU2hl
ZXQqIHBhcmVudFN0eWxlU2hlZXQoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAKLSAgICAv
LyBCaW5kaW5ncyBzdXBwb3J0LgotICAgIE9wdGlvbmFsPFZhcmlhbnQ8U3RyaW5nLCBkb3VibGU+
PiBuYW1lZEl0ZW0oY29uc3QgQXRvbVN0cmluZyYpOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNl
dE5hbWVkSXRlbShjb25zdCBBdG9tU3RyaW5nJiBuYW1lLCBTdHJpbmcgdmFsdWUsIGJvb2wmIHBy
b3BlcnR5U3VwcG9ydGVkKTsKLSAgICBWZWN0b3I8QXRvbVN0cmluZz4gc3VwcG9ydGVkUHJvcGVy
dHlOYW1lcygpIGNvbnN0OworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFByb3BlcnR5VmFsdWVJ
bnRlcm5hbChDU1NQcm9wZXJ0eUlELCBTdHJpbmcpOworICAgIFZhcmlhbnQ8ZG91YmxlLCBTdHJp
bmc+IGdldFByb3BlcnR5VmFsdWVJbnRlcm5hbEZvclBvc09yUGl4ZWxQcmVmaXhlZChDU1NQcm9w
ZXJ0eUlEKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWxG
b3JQb3NPclBpeGVsUHJlZml4ZWQoQ1NTUHJvcGVydHlJRCwgVmFyaWFudDxkb3VibGUsIFN0cmlu
Zz4pOwogCiAgICAgc3RhdGljIENTU1Byb3BlcnR5SUQgZ2V0Q1NTUHJvcGVydHlJREZyb21KYXZh
U2NyaXB0UHJvcGVydHlOYW1lKGNvbnN0IEF0b21TdHJpbmcmKTsKKwogcHJvdGVjdGVkOgogICAg
IENTU1N0eWxlRGVjbGFyYXRpb24oKSA9IGRlZmF1bHQ7CiB9OwpJbmRleDogU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbAkocmV2aXNpb24gMjY4NTUxKQorKysgU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcs
IDIwMDksIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0
IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKQEAgLTE4LDQwICsxOCwyOSBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAg
Ki8KIAordHlwZWRlZiBVU1ZTdHJpbmcgQ1NTT01TdHJpbmc7CisKIFsKICAgICBFeHBvcnRNYWNy
bz1XRUJDT1JFX0VYUE9SVCwKLSAgICBEZWZhdWx0RGVmaW5lT3duUHJvcGVydHksCiAgICAgR2Vu
ZXJhdGVJc1JlYWNoYWJsZSwKICAgICBKU0N1c3RvbUhlYWRlciwKICAgICBKU0N1c3RvbU1hcmtG
dW5jdGlvbiwKICAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbiwKICAgICBFeHBvc2VkPVdpbmRvdwog
XSBpbnRlcmZhY2UgQ1NTU3R5bGVEZWNsYXJhdGlvbiB7Ci0gICAgW0NFUmVhY3Rpb25zXSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIGNzc1RleHQ7Ci0KLSAgICBET01TdHJpbmcgZ2V0UHJvcGVydHlWYWx1
ZShET01TdHJpbmcgcHJvcGVydHlOYW1lKTsKLQotICAgIFtDRVJlYWN0aW9ucywgTWF5VGhyb3dF
eGNlcHRpb25dIERPTVN0cmluZyByZW1vdmVQcm9wZXJ0eShET01TdHJpbmcgcHJvcGVydHlOYW1l
KTsKLSAgICBET01TdHJpbmc/IGdldFByb3BlcnR5UHJpb3JpdHkoRE9NU3RyaW5nIHByb3BlcnR5
TmFtZSk7Ci0KLSAgICBbQ0VSZWFjdGlvbnMsIE1heVRocm93RXhjZXB0aW9uXSB1bmRlZmluZWQg
c2V0UHJvcGVydHkoRE9NU3RyaW5nIHByb3BlcnR5TmFtZSwgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBET01TdHJpbmcgdmFsdWUsIG9wdGlvbmFsIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10g
RE9NU3RyaW5nIHByaW9yaXR5ID0gIiIpOwotCisgICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUg
Q1NTT01TdHJpbmcgY3NzVGV4dDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyBsZW5ndGg7Ci0gICAgZ2V0dGVyIERPTVN0cmluZyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgp
OworICAgIGdldHRlciBDU1NPTVN0cmluZyBpdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAg
IENTU09NU3RyaW5nIGdldFByb3BlcnR5VmFsdWUoQ1NTT01TdHJpbmcgcHJvcGVydHkpOworICAg
IC8vIEZJWE1FOiBUaGUgcmV0dXJuIHZhbHVlIG9mICdnZXRQcm9wZXJ0eVByaW9yaXR5JyBzaG91
bGQgbm90IGJlIG51bGxhYmxlLgorICAgIENTU09NU3RyaW5nPyBnZXRQcm9wZXJ0eVByaW9yaXR5
KENTU09NU3RyaW5nIHByb3BlcnR5KTsKKyAgICBbQ0VSZWFjdGlvbnMsIE1heVRocm93RXhjZXB0
aW9uXSB1bmRlZmluZWQgc2V0UHJvcGVydHkoQ1NTT01TdHJpbmcgcHJvcGVydHksIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgdmFsdWUsIG9wdGlvbmFsIFtMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgcHJpb3JpdHkgPSAiIik7CisgICAgW0NFUmVhY3Rp
b25zLCBNYXlUaHJvd0V4Y2VwdGlvbl0gQ1NTT01TdHJpbmcgcmVtb3ZlUHJvcGVydHkoQ1NTT01T
dHJpbmcgcHJvcGVydHkpOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NSdWxlPyBwYXJlbnRS
dWxlOworICAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmlu
Z10gQ1NTT01TdHJpbmcgY3NzRmxvYXQ7CiAKLSAgICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBb
TGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIERPTVN0cmluZyBjc3NGbG9hdDsKLQorICAgIC8vIE5v
bi1zdGFuZGFyZC4KICAgICBET01TdHJpbmc/IGdldFByb3BlcnR5U2hvcnRoYW5kKG9wdGlvbmFs
IERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwogICAgIGJvb2xlYW4gaXNQcm9wZXJ0eUltcGxpY2l0
KG9wdGlvbmFsIERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwotCi0gICAgLy8gVXNlIG5hbWVkIGdl
dHRlcnMvc2V0dGVycyBmb3IgYWxsIHN1cHBvcnQgQ1NTIHByb3BlcnR5IG5hbWVzLiBUaGUgc3Bl
YyBzYXlzCi0gICAgLy8gdGhlc2Ugc2hvdWxkIGJlIG5vcm1hbCBhdHRyaWJ1dGVzLCBidXQgdGhl
cmUgYXJlIHRvbyBtYW55IGNvbWJpbmF0aW9ucyB3aXRoCi0gICAgLy8gcHJlZml4ZXMgZm9yIHRo
aXMgdG8gYmUgcHJhY3RpY2FsLiBJZiB3ZSByZW1vdmUgbGVnYWN5IGFsaWFzZXMsIHdlIHNob3Vs
ZAotICAgIC8vIHJlY29uc2lkZXIgdGhpcyBkZWNpc2lvbi4KLSAgICBnZXR0ZXIgKERPTVN0cmlu
ZyBvciBkb3VibGUpIChET01TdHJpbmcgbmFtZSk7Ci0gICAgW0NFUmVhY3Rpb25zLCBDYWxsTmFt
ZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVydGllc10gc2V0dGVyIHVuZGVmaW5lZCAoRE9N
U3RyaW5nIG5hbWUsIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gRE9NU3RyaW5nIHZhbHVlKTsK
LQotICAgIC8vIFRoaXMgbWV0aG9kIGlzIGRlcHJlY2F0ZWQsIGFuZCB3ZSB3b3VsZCBsaWtlIHRv
IGRyb3Agc3VwcG9ydCBmb3IgaXQgc29tZWRheQogICAgIERlcHJlY2F0ZWRDU1NPTVZhbHVlPyBn
ZXRQcm9wZXJ0eUNTU1ZhbHVlKERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwogfTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9jc3MvbWFrZXByb3AucGwJKHJldmlzaW9uIDI2ODU1MSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nz
cy9tYWtlcHJvcC5wbAkod29ya2luZyBjb3B5KQpAQCAtMTM1OCwzICsxMzU4LDE3NSBAQCBpZiAo
bm90ICRncGVyZikgewogICAgICRncGVyZiA9ICRFTlZ7R1BFUkZ9ID8gJEVOVntHUEVSRn0gOiAi
Z3BlcmYiOwogfQogc3lzdGVtKCJcIiRncGVyZlwiIC0ta2V5LXBvc2l0aW9ucz1cIipcIiAtRCAt
biAtcyAyIENTU1Byb3BlcnR5TmFtZXMuZ3BlcmYgLS1vdXRwdXQtZmlsZT1DU1NQcm9wZXJ0eU5h
bWVzLmNwcCIpID09IDAgfHwgZGllICJjYWxsaW5nIGdwZXJmIGZhaWxlZDogJD8iOworCisKKyMg
R2VuZXJhdGUgQ1NTU3R5bGVEZWNsYXJhdGlvbitQcm9wZXJ0eU5hbWVzLmlkbAorCisjIGh0dHBz
Oi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS8jY3NzLXByb3BlcnR5LXRvLWlkbC1hdHRyaWJ1dGUK
K3N1YiBjc3NQcm9wZXJ0eVRvSURMQXR0cmlidXRlKCQkJCkKK3sKKyAgICBteSAkcHJvcGVydHkg
PSBzaGlmdDsKKyAgICBteSAkbG93ZXJjYXNlRmlyc3QgPSBzaGlmdDsKKyAgICBteSAkdXBwZXJj
YXNlRmlyc3QgPSBzaGlmdDsKKworICAgIG15ICRvdXRwdXQgPSAiIjsKKyAgICBteSAkdXBwZXJj
YXNlTmV4dCA9ICR1cHBlcmNhc2VGaXJzdDsKKworICAgIGlmICgkbG93ZXJjYXNlRmlyc3QpIHsK
KyAgICAgICAgJHByb3BlcnR5ID0gc3Vic3RyKCRwcm9wZXJ0eSwgMSk7CisgICAgfQorCisgICAg
Zm9yZWFjaCBteSAkY2hhcmFjdGVyIChzcGxpdCAvLywgJHByb3BlcnR5KSB7CisgICAgICAgIGlm
ICgkY2hhcmFjdGVyIGVxICItIikgeworICAgICAgICAgICAgJHVwcGVyY2FzZU5leHQgPSAxOwor
ICAgICAgICB9IGVsc2lmICgkdXBwZXJjYXNlTmV4dCkgeworICAgICAgICAgICAgJHVwcGVyY2Fz
ZU5leHQgPSAwOworICAgICAgICAgICAgJG91dHB1dCAuPSB1YyAkY2hhcmFjdGVyOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgJG91dHB1dCAuPSAkY2hhcmFjdGVyOworICAgICAgICB9
CisgICAgfQorICAgIAorICAgIHJldHVybiAkb3V0cHV0OworfQorCitteSAlbmFtZXNBbmRBbGlh
c2VzVG9OYW1lOworZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7CisgICAgaWYgKGdyZXAgeyAk
XyBlcSAkbmFtZSB9IEBpbnRlcm5hbFByb3ByZXJ0aWVzKSB7CisgICAgICAgIG5leHQ7CisgICAg
fQorICAgICRuYW1lc0FuZEFsaWFzZXNUb05hbWV7JG5hbWV9ID0gJG5hbWU7CisgICAgZm9yIG15
ICRhbGlhcyAoQHskbmFtZVRvQWxpYXNlc3skbmFtZX19KSB7CisgICAgICAgICRuYW1lc0FuZEFs
aWFzZXNUb05hbWV7JGFsaWFzfSA9ICRuYW1lOworICAgIH0KK30KK215IEBuYW1lc0FuZEFsaWFz
ZXMgPSBzb3J0IGtleXMoJW5hbWVzQW5kQWxpYXNlc1RvTmFtZSk7CisKK29wZW4gQ1NTX1NUWUxF
X0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCwgIj4iLCAiQ1NTU3R5bGVEZWNsYXJhdGlv
bitQcm9wZXJ0eU5hbWVzLmlkbCIgb3IgZGllICJDb3VsZCBub3Qgb3BlbiBDU1NTdHlsZURlY2xh
cmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsIGZvciB3cml0aW5nXG4iOworcHJpbnQgQ1NTX1NUWUxF
X0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsKKy8vIFRoaXMgZmlsZSBp
cyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tICRpbnB1dEZpbGUgYnkgdGhlIG1ha2Vwcm9w
LnBsIHNjcmlwdC4gRG8gbm90IGVkaXQgaXQuCisKK3R5cGVkZWYgVVNWU3RyaW5nIENTU09NU3Ry
aW5nOworCitwYXJ0aWFsIGludGVyZmFjZSBDU1NTdHlsZURlY2xhcmF0aW9uIHsKK0VPRgorIAor
cHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsK
KyAgICAvLyBGb3IgZWFjaCBDU1MgcHJvcGVydHkgcHJvcGVydHkgdGhhdCBpcyBhIHN1cHBvcnRl
ZCBDU1MgcHJvcGVydHksIHRoZSBmb2xsb3dpbmcKKyAgICAvLyBwYXJ0aWFsIGludGVyZmFjZSBh
cHBsaWVzIHdoZXJlIGNhbWVsLWNhc2VkIGF0dHJpYnV0ZSBpcyBvYnRhaW5lZCBieSBydW5uaW5n
IHRoZQorICAgIC8vIENTUyBwcm9wZXJ0eSB0byBJREwgYXR0cmlidXRlIGFsZ29yaXRobSBmb3Ig
cHJvcGVydHkuCisgICAgLy8gRXhhbXBsZTogZm9udC1zaXplIC0+IGVsZW1lbnQuc3R5bGUuZm9u
dFNpemUKKyAgICAvLyBFeGFtcGxlOiAtd2Via2l0LXRyYW5zZm9ybSAtPiBlbGVtZW50LnN0eWxl
LldlYmtpdFRyYW5zZm9ybQorICAgIC8vIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFtMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgX2NhbWVsX2Nhc2VkX2F0dHJpYnV0ZTsKK0VP
RgorCitmb3JlYWNoIG15ICRuYW1lT3JBbGlhcyAoQG5hbWVzQW5kQWxpYXNlcykgeworICAgIG15
ICRjYW1lbENhc2VkQXR0cmlidXRlTmFtZSA9IGNzc1Byb3BlcnR5VG9JRExBdHRyaWJ1dGUoJG5h
bWVPckFsaWFzLCAwLCAwKTsKKyAgICBteSAkbmFtZSA9ICRuYW1lc0FuZEFsaWFzZXNUb05hbWV7
JG5hbWVPckFsaWFzfTsKKyAgICBteSAkcHJvcGVydHlJZCA9ICRuYW1lVG9JZHskbmFtZXNBbmRB
bGlhc2VzVG9OYW1leyRuYW1lfX07CisgICAgCisgICAgbXkgQGV4dGVuZGVkQXR0cmlidXRlVmFs
dWVzID0gKCJDU1NQcm9wZXJ0eT0ke3Byb3BlcnR5SWR9Iik7CisgICAgcHVzaChAZXh0ZW5kZWRB
dHRyaWJ1dGVWYWx1ZXMsICJFbmFibGVkQnlTZXR0aW5nPSR7c2V0dGluZ3NGbGFnc3skbmFtZX19
IikgaWYgJHNldHRpbmdzRmxhZ3N7JG5hbWV9OworICAgIHB1c2goQGV4dGVuZGVkQXR0cmlidXRl
VmFsdWVzLCAiRW5hYmxlZEF0UnVudGltZT0ke3J1bnRpbWVGbGFnc3skbmFtZX19IikgaWYgJHJ1
bnRpbWVGbGFnc3skbmFtZX07CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlcyA9IGpvaW4oIiwg
IiwgQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzKTsKKworICAgIHByaW50IENTU19TVFlMRV9ERUNM
QVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRB
dHRyaWJ1dGVzfV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJp
bmcgJHtjYW1lbENhc2VkQXR0cmlidXRlTmFtZX07XG4iOworfQorCitwcmludCBDU1NfU1RZTEVf
REVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMIDw8ICJFT0YiOworCisgICAgLy8gRm9yIGVh
Y2ggQ1NTIHByb3BlcnR5IHByb3BlcnR5IHRoYXQgaXMgYSBzdXBwb3J0ZWQgQ1NTIHByb3BlcnR5
IGFuZCB0aGF0IGJlZ2lucworICAgIC8vIHdpdGggdGhlIHN0cmluZyAtd2Via2l0LSwgdGhlIGZv
bGxvd2luZyBwYXJ0aWFsIGludGVyZmFjZSBhcHBsaWVzIHdoZXJlIHdlYmtpdC1jYXNlZAorICAg
IC8vIGF0dHJpYnV0ZSBpcyBvYnRhaW5lZCBieSBydW5uaW5nIHRoZSBDU1MgcHJvcGVydHkgdG8g
SURMIGF0dHJpYnV0ZSBhbGdvcml0aG0gZm9yCisgICAgLy8gcHJvcGVydHksIHdpdGggdGhlIGxv
d2VyY2FzZSBmaXJzdCBmbGFnIHNldC4KKyAgICAvLyBFeGFtcGxlOiAtd2Via2l0LXRyYW5zZm9y
bSAtPiBlbGVtZW50LnN0eWxlLndlYmtpdFRyYW5zZm9ybQorICAgIC8vIFtDRVJlYWN0aW9uc10g
YXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgX3dlYmtpdF9j
YXNlZF9hdHRyaWJ1dGU7CitFT0YKKworZm9yZWFjaCBteSAkbmFtZU9yQWxpYXMgKGdyZXAgeyAk
XyA9fiAvXlwtd2Via2l0XC0vIH0gQG5hbWVzQW5kQWxpYXNlcykgeworICAgIG15ICR3ZWJraXRD
YXNlZEF0dHJpYnV0ZU5hbWUgPSBjc3NQcm9wZXJ0eVRvSURMQXR0cmlidXRlKCRuYW1lT3JBbGlh
cywgMSwgMCk7CisgICAgbXkgJG5hbWUgPSAkbmFtZXNBbmRBbGlhc2VzVG9OYW1leyRuYW1lT3JB
bGlhc307CisgICAgbXkgJHByb3BlcnR5SWQgPSAkbmFtZVRvSWR7JG5hbWVzQW5kQWxpYXNlc1Rv
TmFtZXskbmFtZX19OworICAgIAorICAgIG15IEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcyA9ICgi
Q1NTUHJvcGVydHk9JHtwcm9wZXJ0eUlkfSIpOworICAgIHB1c2goQGV4dGVuZGVkQXR0cmlidXRl
VmFsdWVzLCAiRW5hYmxlZEJ5U2V0dGluZz0ke3NldHRpbmdzRmxhZ3N7JG5hbWV9fSIpIGlmICRz
ZXR0aW5nc0ZsYWdzeyRuYW1lfTsKKyAgICBwdXNoKEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcywg
IkVuYWJsZWRBdFJ1bnRpbWU9JHtydW50aW1lRmxhZ3N7JG5hbWV9fSIpIGlmICRydW50aW1lRmxh
Z3N7JG5hbWV9OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZXMgPSBqb2luKCIsICIsIEBleHRl
bmRlZEF0dHJpYnV0ZVZhbHVlcyk7CisKKyAgICBwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05f
UFJPUEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVhY3Rpb25zLCAke2V4dGVuZGVkQXR0cmlidXRl
c31dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nICR7d2Vi
a2l0Q2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiI7Cit9CisKK3ByaW50IENTU19TVFlMRV9ERUNMQVJB
VElPTl9QUk9QRVJUWV9OQU1FU19JREwgPDwgIkVPRiI7CisKKyAgICAvLyBGb3IgZWFjaCBDU1Mg
cHJvcGVydHkgcHJvcGVydHkgdGhhdCBpcyBhIHN1cHBvcnRlZCBDU1MgcHJvcGVydHksIGV4Y2Vw
dCBmb3IKKyAgICAvLyBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBubyAiLSIgKFUrMDAyRCkgaW4gdGhl
IHByb3BlcnR5IG5hbWUsIHRoZSBmb2xsb3dpbmcgcGFydGlhbAorICAgIC8vIGludGVyZmFjZSBh
cHBsaWVzIHdoZXJlIGRhc2hlZCBhdHRyaWJ1dGUgaXMgcHJvcGVydHkuCisgICAgLy8gRXhhbXBs
ZTogZm9udC1zaXplIC0+IGVsZW1lbnQuc3R5bGVbJ2ZvbnQtc2l6ZSddCisgICAgLy8gRXhhbXBs
ZTogLXdlYmtpdC10cmFuc2Zvcm0gLT4gZWxlbWVudC5zdHlsZS5bJy13ZWJraXQtdHJhbnNmb3Jt
J10KKyAgICAvLyBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJp
bmddIENTU09NU3RyaW5nIF9kYXNoZWRfYXR0cmlidXRlOworRU9GCitmb3JlYWNoIG15ICRuYW1l
T3JBbGlhcyAoZ3JlcCB7ICRfID1+IC9cLS8gfSBAbmFtZXNBbmRBbGlhc2VzKSB7CisgICAgbXkg
JGRhc2hlZEF0dHJpYnV0ZU5hbWUgPSAkbmFtZU9yQWxpYXM7CisgICAgbXkgJG5hbWUgPSAkbmFt
ZXNBbmRBbGlhc2VzVG9OYW1leyRuYW1lT3JBbGlhc307CisgICAgbXkgJHByb3BlcnR5SWQgPSAk
bmFtZVRvSWR7JG5hbWVzQW5kQWxpYXNlc1RvTmFtZXskbmFtZX19OworICAgIAorICAgIG15IEBl
eHRlbmRlZEF0dHJpYnV0ZVZhbHVlcyA9ICgiQ1NTUHJvcGVydHk9JHtwcm9wZXJ0eUlkfSIpOwor
ICAgIHB1c2goQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzLCAiRW5hYmxlZEJ5U2V0dGluZz0ke3Nl
dHRpbmdzRmxhZ3N7JG5hbWV9fSIpIGlmICRzZXR0aW5nc0ZsYWdzeyRuYW1lfTsKKyAgICBwdXNo
KEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcywgIkVuYWJsZWRBdFJ1bnRpbWU9JHtydW50aW1lRmxh
Z3N7JG5hbWV9fSIpIGlmICRydW50aW1lRmxhZ3N7JG5hbWV9OworICAgIG15ICRleHRlbmRlZEF0
dHJpYnV0ZXMgPSBqb2luKCIsICIsIEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcyk7CisKKyAgICBw
cmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVh
Y3Rpb25zLCAke2V4dGVuZGVkQXR0cmlidXRlc31dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1w
dHlTdHJpbmddIENTU09NU3RyaW5nICR7ZGFzaGVkQXR0cmlidXRlTmFtZX07XG4iOworfQorCisj
IEV2ZXJ5dGhpbmcgYmVsb3cgaGVyZSBpcyBub24tc3RhbmRhcmQuCisKK3ByaW50IENTU19TVFlM
RV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgPDwgIkVPRiI7CisKKyAgICAvLyBOb24t
c3RhbmRhcmQuIFNwZWNpYWwgY2FzZSBwcm9wZXJ0aWVzIHN0YXJ0aW5nIHdpdGggLWVwdWItIGxp
a2UgaXMgZG9uZSBmb3IKKyAgICAvLyAtd2Via2l0LSwgd2hlcmUgYXR0cmlidXRlIGlzIG9idGFp
bmVkIGJ5IHJ1bm5pbmcgdGhlIENTUyBwcm9wZXJ0eSB0byBJREwgYXR0cmlidXRlCisgICAgLy8g
YWxnb3JpdGhtIGZvciBwcm9wZXJ0eSwgd2l0aCB0aGUgbG93ZXJjYXNlIGZpcnN0IGZsYWcgc2V0
LgorICAgIC8vIEV4YW1wbGU6IC1lcHViLWNhcHRpb24tc2lkZSAtPiBlbGVtZW50LnN0eWxlLmVw
dWJDYXB0aW9uU2lkZQorRU9GCitmb3JlYWNoIG15ICRuYW1lT3JBbGlhcyAoZ3JlcCB7ICRfID1+
IC9eXC1lcHViXC0vIH0gQG5hbWVzQW5kQWxpYXNlcykgeworICAgIG15ICRlcHViQ2FzZWRBdHRy
aWJ1dGVOYW1lID0gY3NzUHJvcGVydHlUb0lETEF0dHJpYnV0ZSgkbmFtZU9yQWxpYXMsIDEsIDAp
OworICAgIG15ICRuYW1lID0gJG5hbWVzQW5kQWxpYXNlc1RvTmFtZXskbmFtZU9yQWxpYXN9Owor
ICAgIG15ICRwcm9wZXJ0eUlkID0gJG5hbWVUb0lkeyRuYW1lc0FuZEFsaWFzZXNUb05hbWV7JG5h
bWV9fTsKKyAgICAKKyAgICBteSBAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMgPSAoIkNTU1Byb3Bl
cnR5PSR7cHJvcGVydHlJZH0iKTsKKyAgICBwdXNoKEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcywg
IkVuYWJsZWRCeVNldHRpbmc9JHtzZXR0aW5nc0ZsYWdzeyRuYW1lfX0iKSBpZiAkc2V0dGluZ3NG
bGFnc3skbmFtZX07CisgICAgcHVzaChAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMsICJFbmFibGVk
QXRSdW50aW1lPSR7cnVudGltZUZsYWdzeyRuYW1lfX0iKSBpZiAkcnVudGltZUZsYWdzeyRuYW1l
fTsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVzID0gam9pbigiLCAiLCBAZXh0ZW5kZWRBdHRy
aWJ1dGVWYWx1ZXMpOworCisgICAgcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZ
X05BTUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgJHtleHRlbmRlZEF0dHJpYnV0ZXN9XSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyAke2VwdWJDYXNlZEF0
dHJpYnV0ZU5hbWV9O1xuIjsKK30KKworcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BF
UlRZX05BTUVTX0lETCA8PCAiRU9GIjsKKworICAgIC8vIE5vbi1zdGFuZGFyZC4gQWRkIHNwZWNp
YWwgY2FzZXMgZm9yIGFsbCBwcm9wZXJ0aWVzIG5vdCBzdGFydGluZyB3aXRoIC13ZWJraXQtIG9y
IC1lcHViLQorICAgIC8vIHRoYXQgcHV0cyBhbiBuZXcgcHJlZml4IG9mIGNzcywgQ3NzLCBwb3Ms
IFBvcywgcGl4ZWwgYW5kIFBpeGVsIG9uIGVhY2guCisgICAgLy8gRXhhbXBsZSB0b3AgLT4gZWxl
bWVudC5zdHlsZS5wb3NUb3AKKyAgICAvLyBFeGFtcGxlIHRvcCAtPiBlbGVtZW50LnN0eWxlLlBp
eGVsVG9wCitFT0YKK2ZvcmVhY2ggbXkgJG5hbWVPckFsaWFzIChncmVwIHsgJF8gIX4gL15cLXdl
YmtpdFwtfF5cLWVwdWJcLS8gfSBAbmFtZXNBbmRBbGlhc2VzKSB7CisgICAgbXkgJGNhbWVsQ2Fz
ZWRBdHRyaWJ1dGVOYW1lID0gY3NzUHJvcGVydHlUb0lETEF0dHJpYnV0ZSgkbmFtZU9yQWxpYXMs
IDAsIDEpOworICAgIG15ICRuYW1lID0gJG5hbWVzQW5kQWxpYXNlc1RvTmFtZXskbmFtZU9yQWxp
YXN9OworICAgIG15ICRwcm9wZXJ0eUlkID0gJG5hbWVUb0lkeyRuYW1lc0FuZEFsaWFzZXNUb05h
bWV7JG5hbWV9fTsKKyAgICAKKyAgICBteSBAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMgPSAoIkNT
U1Byb3BlcnR5PSR7cHJvcGVydHlJZH0iKTsKKyAgICBwdXNoKEBleHRlbmRlZEF0dHJpYnV0ZVZh
bHVlcywgIkVuYWJsZWRCeVNldHRpbmc9JHtzZXR0aW5nc0ZsYWdzeyRuYW1lfX0iKSBpZiAkc2V0
dGluZ3NGbGFnc3skbmFtZX07CisgICAgcHVzaChAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMsICJF
bmFibGVkQXRSdW50aW1lPSR7cnVudGltZUZsYWdzeyRuYW1lfX0iKSBpZiAkcnVudGltZUZsYWdz
eyRuYW1lfTsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVzID0gam9pbigiLCAiLCBAZXh0ZW5k
ZWRBdHRyaWJ1dGVWYWx1ZXMpOworCisgICAgcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BS
T1BFUlRZX05BTUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgJHtleHRlbmRlZEF0dHJpYnV0ZXN9
XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBjc3Mke2Nh
bWVsQ2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiIgdW5sZXNzICRjYW1lbENhc2VkQXR0cmlidXRlTmFt
ZSBlcSAiRmxvYXQiOworICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9O
QU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmli
dXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgQ3NzJHtjYW1lbENhc2Vk
QXR0cmlidXRlTmFtZX07XG4iIHVubGVzcyAkY2FtZWxDYXNlZEF0dHJpYnV0ZU5hbWUgZXEgIkZs
b2F0IjsKKyAgICBwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURM
ICIgICAgW0NFUmVhY3Rpb25zLCAke2V4dGVuZGVkQXR0cmlidXRlc31dIGF0dHJpYnV0ZSAoZG91
YmxlIG9yIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcpIHBvcyR7Y2FtZWxD
YXNlZEF0dHJpYnV0ZU5hbWV9O1xuIjsKKyAgICBwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05f
UFJPUEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVhY3Rpb25zLCAke2V4dGVuZGVkQXR0cmlidXRl
c31dIGF0dHJpYnV0ZSAoZG91YmxlIG9yIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01T
dHJpbmcpIFBvcyR7Y2FtZWxDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIjsKKyAgICBwcmludCBDU1Nf
U1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVhY3Rpb25zLCAk
e2V4dGVuZGVkQXR0cmlidXRlc31dIGF0dHJpYnV0ZSAoZG91YmxlIG9yIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gQ1NTT01TdHJpbmcpIHBpeGVsJHtjYW1lbENhc2VkQXR0cmlidXRlTmFtZX07
XG4iOworICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwg
IiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIChkb3Vi
bGUgb3IgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZykgUGl4ZWwke2NhbWVs
Q2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiI7Cit9CisKK3ByaW50IENTU19TVFlMRV9ERUNMQVJBVElP
Tl9QUk9QRVJUWV9OQU1FU19JREwgPDwgIkVPRiI7Cit9OworRU9GCisKK2Nsb3NlIENTU19TVFlM
RV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREw7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjg1
NTEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwy
OSBAQAorMjAyMC0xMC0xNSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAg
ICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiBicmVha3MgSlMgc3BlYyAocHJvcGVydGllcyBub3Qgc2hv
d2luZyB1cCBpbiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcykKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzYyMworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9jc3Mvc3R5bGUtZW51bWVyYXRl
LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3NzL3N0eWxlLWVudW1l
cmF0ZS1wcm9wZXJ0aWVzLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vZG9tTGlzdEVudW1lcmF0
aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9kb21MaXN0RW51bWVyYXRpb24u
aHRtbDoKKyAgICAgICAgUmVtb3ZlIHRlc3RzIGZvciBpdGVyYXRpb24gb3JkZXIsIHdoaWNoIGlz
IG5vdCBzdGFuZGFyZGl6ZWQsIGFuZCBub3QgY29uc2lzdGVudCBhbW9uZworICAgICAgICBicm93
c2Vycy4KKworICAgICAgICAqIGZhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3Nzc3R5bGVk
ZWNsYXJhdGlvbi1wcm9wZXJ0aWVzLWRlc2NyaXB0b3ItZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3Nzc3R5bGVkZWNsYXJhdGlvbi1wcm9wZXJ0
aWVzLWRlc2NyaXB0b3IuaHRtbDoKKyAgICAgICAgVXBkYXRlIG5vdyB0aGF0IHRoZSBwcm9wZXJ0
aWVzIGFyZSBwcm9wZXIgYXR0cmlidXRlcyBvbiB0aGUgcHJvdG90eXBlLgorCisgICAgICAgICog
anMvZG9tL3B1dC1vdmVycmlkZS1zaG91bGQtbm90LXVzZS1pYy5odG1sOgorICAgICAgICBTd2l0
Y2ggdG8gdXNpbmcgYSBET01TdHJpbmdMaXN0IGFzIHRoZSBvYmplY3QgdGhhdCBvdmVycmlkZXMg
cHV0LCBzaW5jZSBDU1NTdHlsZURlY2xhcmF0aW9uIG5vIGxvbmdlciBkb2VzLgorCisgICAgICAg
ICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbnMtcGFyc2luZy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbnMtcGFyc2luZy5odG1sOgorICAgICAgICBSZW1vdmUg
T2JqZWN0LmtleXMoKSBhc3BlY3Qgb2YgdGhlIHRlc3QsIHdoaWNoIGlzIG5vIGxvbmdlciBtZWFu
aW5nZnVsIHNpbmNlIHRoZQorICAgICAgICBwcm9wZXJ0aWVzIHNob3VsZCBubyBsb25nZXIgZXhp
c3QgaW4gdGhlIHJlc3VsdCBzZXQuCisKIDIwMjAtMTAtMTUgIEZ1amlpIEhpcm9ub3JpICA8SGly
b25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBVbnJldmlld2VkIHRl
c3QgZ2FyZGVuaW5nCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1lbnVtZXJhdGUt
cHJvcGVydGllcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9j
c3Mvc3R5bGUtZW51bWVyYXRlLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjg1
NTEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1lbnVtZXJhdGUtcHJvcGVydGllcy1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTExLDcgKzExLDYgQEAgUEFTUyAnV2Via2l0
VHJhbnNmb3JtJyBpbiBkb2N1bWVudC5ib2R5LgogUEFTUyAnYm9ndXMtcmFuZG9tLVN0cmluZycg
aW4gZG9jdW1lbnQuYm9keS5zdHlsZSBpcyBmYWxzZQogUEFTUyAnY3NzVGV4dCcgaW4gZG9jdW1l
bnQuYm9keS5zdHlsZSBpcyB0cnVlCiBQQVNTICdnZXRQcm9wZXJ0eUNTU1ZhbHVlJyBpbiBkb2N1
bWVudC5ib2R5LnN0eWxlIGlzIHRydWUKLVBBU1MgVGhlIENTUyBwcm9wZXJ0eSBvcmRlciBpcyBj
b3JyZWN0CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLWVudW1lcmF0ZS1wcm9wZXJ0aWVzLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtZW51bWVyYXRlLXBy
b3BlcnRpZXMuaHRtbAkocmV2aXNpb24gMjY4NTUxKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
c3R5bGUtZW51bWVyYXRlLXByb3BlcnRpZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjMsMzMg
KzIzLDYgQEAKICAgICAgICAgc2hvdWxkQmVGYWxzZSgiJ2JvZ3VzLXJhbmRvbS1TdHJpbmcnIGlu
IGRvY3VtZW50LmJvZHkuc3R5bGUiKTsKICAgICAgICAgc2hvdWxkQmVUcnVlKCInY3NzVGV4dCcg
aW4gZG9jdW1lbnQuYm9keS5zdHlsZSIpOwogICAgICAgICBzaG91bGRCZVRydWUoIidnZXRQcm9w
ZXJ0eUNTU1ZhbHVlJyBpbiBkb2N1bWVudC5ib2R5LnN0eWxlIik7Ci0KLSAgICAgICAgLy8gVGVz
dCBDU1MgcHJvcGVydHkgb3JkZXIuCi0gICAgICAgIHZhciBzdGFydGVkOwotICAgICAgICB2YXIg
Y3NzUHJvcGVydHlDb3VudCA9IDA7Ci0gICAgICAgIHZhciBwcmV2aW91czsKLSAgICAgICAgdmFy
IHNlZW5GaWx0ZXI7Ci0gICAgICAgIGZvciAodmFyIHAgaW4gZG9jdW1lbnQuYm9keS5zdHlsZSkg
ewotICAgICAgICAgICAgaWYgKHAgPT09ICJhbGlnbm1lbnRCYXNlbGluZSIpCi0gICAgICAgICAg
ICAgICAgc3RhcnRlZCA9IHRydWU7Ci0gICAgICAgICAgICBpZiAoIXN0YXJ0ZWQpCi0gICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBpZiAocCA9PT0gImZpbHRlciIpCi0gICAg
ICAgICAgICAgICAgc2VlbkZpbHRlciA9IHRydWU7Ci0gICAgICAgICAgICBpZiAocHJldmlvdXMg
JiYgcHJldmlvdXMgPj0gcCkgewotICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkludmFsaWQg
Q1NTLW1hcHBlZCBwcm9wZXJ0eSBvcmRlcjogJyIgKyBwICsgIicgYWZ0ZXIgJyIgKyBwcmV2aW91
cyArICInIik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBpZiAoKytjc3NQcm9wZXJ0eUNvdW50IDw9IDQwMCkKLSAgICAgICAgICAgICAgICBwcmV2
aW91cyA9IHA7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoc2VlbkZp
bHRlcikKLSAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiVGhlIENTUyBwcm9wZXJ0eSBv
cmRlciBpcyBjb3JyZWN0Iik7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJUaGUgJ2ZpbHRlcicgcHJvcGVydHkgd2FzIG5vdCBlbnVtZXJhdGVk
Iik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KICAg
ICA8L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9kb21M
aXN0RW51bWVyYXRpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL2RvbUxpc3RFbnVtZXJhdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI2ODU1MSkK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL2RvbUxpc3RFbnVtZXJhdGlvbi1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTY1LDE0ICs2NSw2IEBAIFBBU1MgcmVzdWx0QXJyYXlbMV0uaXRl
bSBpcyBjc3NSdWxlTGlzdC4KIFBBU1MgcmVzdWx0QXJyYXlbMl0uaSBpcyAnMicKIFBBU1MgcmVz
dWx0QXJyYXlbMl0uaXRlbSBpcyBjc3NSdWxlTGlzdC5pdGVtKDIpCiAKLVtvYmplY3QgQ1NTU3R5
bGVEZWNsYXJhdGlvbl0KLVBBU1MgcmVzdWx0QXJyYXlbMF0uaSBpcyAnMCcKLVBBU1MgcmVzdWx0
QXJyYXlbMF0uaXRlbSBpcyBjc3NTdHlsZURlY2xhcmF0aW9uLml0ZW0oMCkKLVBBU1MgcmVzdWx0
QXJyYXlbMV0uaSBpcyAnMScKLVBBU1MgcmVzdWx0QXJyYXlbMV0uaXRlbSBpcyBjc3NTdHlsZURl
Y2xhcmF0aW9uLml0ZW0oMSkKLVBBU1MgcmVzdWx0QXJyYXlbMl0uaSBpcyAnMicKLVBBU1MgcmVz
dWx0QXJyYXlbMl0uaXRlbSBpcyBjc3NTdHlsZURlY2xhcmF0aW9uLml0ZW0oMikKLQogW29iamVj
dCBDU1NWYWx1ZUxpc3RdCiBQQVNTIHJlc3VsdEFycmF5Lmxlbmd0aCBpcyAxMAogUEFTUyByZXN1
bHRBcnJheVswXS5pIGlzICcwJwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tTGlzdEVu
dW1lcmF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tTGlz
dEVudW1lcmF0aW9uLmh0bWwJKHJldmlzaW9uIDI2ODU1MSkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL2RvbUxpc3RFbnVtZXJhdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNzcsMTcgKzE3
Nyw2IEBAIHNob3VsZEJlKCJyZXN1bHRBcnJheVsxXS5pdGVtIiwgImNzc1J1bGUKIHNob3VsZEJl
KCJyZXN1bHRBcnJheVsyXS5pIiwgIicyJyIpOwogc2hvdWxkQmUoInJlc3VsdEFycmF5WzJdLml0
ZW0iLCAiY3NzUnVsZUxpc3QuaXRlbSgyKSIpOwogCi0vLyBDU1NTdHlsZURlY2xhcmF0aW9uCi0v
L2RlYnVnKGVzY2FwZUhUTUwoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3N0eWxlJykp
KTsKLXZhciBjc3NTdHlsZURlY2xhcmF0aW9uID0gZG9jdW1lbnQuc3R5bGVTaGVldHNbMl0uY3Nz
UnVsZXNbMF0uc3R5bGU7Ci1yZXN1bHRBcnJheSA9IGl0ZXJhdGVMaXN0KGNzc1N0eWxlRGVjbGFy
YXRpb24pOwotc2hvdWxkQmUoInJlc3VsdEFycmF5WzBdLmkiLCAiJzAnIik7Ci1zaG91bGRCZSgi
cmVzdWx0QXJyYXlbMF0uaXRlbSIsICJjc3NTdHlsZURlY2xhcmF0aW9uLml0ZW0oMCkiKTsKLXNo
b3VsZEJlKCJyZXN1bHRBcnJheVsxXS5pIiwgIicxJyIpOwotc2hvdWxkQmUoInJlc3VsdEFycmF5
WzFdLml0ZW0iLCAiY3NzU3R5bGVEZWNsYXJhdGlvbi5pdGVtKDEpIik7Ci1zaG91bGRCZSgicmVz
dWx0QXJyYXlbMl0uaSIsICInMiciKTsKLXNob3VsZEJlKCJyZXN1bHRBcnJheVsyXS5pdGVtIiwg
ImNzc1N0eWxlRGVjbGFyYXRpb24uaXRlbSgyKSIpOwotCiAvLyBDU1NWYWx1ZUxpc3QKIHZhciBj
c3NWYWx1ZUxpc3QgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgnb2wnKVswXSkuZ2V0UHJvcGVydHlDU1NWYWx1ZSgnYm9yZGVyLXNwYWNpbmcn
KTsKIHJlc3VsdEFycmF5ID0gaXRlcmF0ZUxpc3QoY3NzVmFsdWVMaXN0KTsKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3Nzc3R5bGVkZWNsYXJhdGlvbi1w
cm9wZXJ0aWVzLWRlc2NyaXB0b3ItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3Nzc3R5bGVkZWNsYXJhdGlvbi1wcm9w
ZXJ0aWVzLWRlc2NyaXB0b3ItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjg1NTEpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzc3N0eWxlZGVjbGFyYXRpb24t
cHJvcGVydGllcy1kZXNjcmlwdG9yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMyw3
ICszLDggQEAgVGhpcyB0ZXN0cyB0aGUgZGVzY3JpcHRvciBvZiBDU1NTdHlsZURlYwogT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgZGVzY3JpcHRvclsnd3JpdGFibGUnXSBpcyB0
cnVlCitQQVNTIGRlc2NyaXB0b3JbJ2dldCddIGlzIGFuIGluc3RhbmNlIG9mIEZ1bmN0aW9uCitQ
QVNTIGRlc2NyaXB0b3JbJ3NldCddIGlzIGFuIGluc3RhbmNlIG9mIEZ1bmN0aW9uCiBQQVNTIGRl
c2NyaXB0b3JbJ2VudW1lcmFibGUnXSBpcyB0cnVlCiBQQVNTIGRlc2NyaXB0b3JbJ2NvbmZpZ3Vy
YWJsZSddIGlzIHRydWUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3Nzc3R5bGVkZWNsYXJhdGlv
bi1wcm9wZXJ0aWVzLWRlc2NyaXB0b3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzc3N0eWxlZGVjbGFyYXRpb24tcHJvcGVydGll
cy1kZXNjcmlwdG9yLmh0bWwJKHJldmlzaW9uIDI2ODU1MSkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL0NTU1N0eWxlRGVjbGFyYXRpb24vY3Nzc3R5bGVkZWNsYXJhdGlvbi1wcm9wZXJ0aWVzLWRl
c2NyaXB0b3IuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNSw4ICs1LDkgQEAKICAgICA8c2NyaXB0
PgogICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGUgZGVzY3JpcHRvciBvZiBDU1NT
dHlsZURlY2xhcmF0aW9uIHByb3BlcnRpZXMuIik7CiAKLSAgICAgICAgdmFyIGRlc2NyaXB0b3Ig
PSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGRvY3VtZW50LmJvZHkuc3R5bGUsICdj
b2xvcicpOwotICAgICAgICBzaG91bGRCZVRydWUoImRlc2NyaXB0b3JbJ3dyaXRhYmxlJ10iKTsK
KyAgICAgICAgdmFyIGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGRvY3VtZW50LmJvZHkuc3R5bGUuX19wcm90b19fLCAnY29sb3InKTsKKyAgICAgICAgc2hvdWxk
QmVUeXBlKCJkZXNjcmlwdG9yWydnZXQnXSIsICJGdW5jdGlvbiIpOworICAgICAgICBzaG91bGRC
ZVR5cGUoImRlc2NyaXB0b3JbJ3NldCddIiwgIkZ1bmN0aW9uIik7CiAgICAgICAgIHNob3VsZEJl
VHJ1ZSgiZGVzY3JpcHRvclsnZW51bWVyYWJsZSddIik7CiAgICAgICAgIHNob3VsZEJlVHJ1ZSgi
ZGVzY3JpcHRvclsnY29uZmlndXJhYmxlJ10iKTsKICAgICA8L3NjcmlwdD4KSW5kZXg6IExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwkocmV2aXNpb24gMjY4NTUxKQorKysgTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisy
MDIwLTEwLTE1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBDU1NT
dHlsZURlY2xhcmF0aW9uIGJyZWFrcyBKUyBzcGVjIChwcm9wZXJ0aWVzIG5vdCBzaG93aW5nIHVw
IGluIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NjIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tL2Nz
c3N0eWxlZGVjbGFyYXRpb24tcHJvcGVydGllcy1leHBlY3RlZC50eHQ6CisgICAgICAgIFVwZGF0
ZSB0ZXN0IHJlc3VsdCBub3cgdGhhdCBpdCBpcyBwYXNzaW5nLgorCiAyMDIwLTEwLTE0ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3MtZmxl
eGJveF0gZmxleC1ncm93IHByb3BlcnR5IHNob3VsZCBiZSBhbmltYXRhYmxlCkluZGV4OiBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3NvbS9jc3NzdHls
ZWRlY2xhcmF0aW9uLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tL2Nzc3N0eWxl
ZGVjbGFyYXRpb24tcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI2ODU1MSkKKysr
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzc29tL2Nz
c3N0eWxlZGVjbGFyYXRpb24tcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwzIEBACiAKLUZBSUwgQ1NTIFRlc3Q6IENTU1N0eWxlRGVjbGFyYXRpb24gcHJv
cGVydGllcyBhcmUgZGVmaW5lZCBhcyBXZWJJREwgYXR0cmlidXRlcywgbm90IHVzaW5nIGdldE93
blByb3BlcnR5TmFtZXMoKSBhc3NlcnRfZmFsc2U6IHNob3VsZG4ndCBoYXZlIGFuIG93biBwcm9w
ZXJ0eSBmb3IgV2ViSURMIGF0dHJpYnV0ZXMgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1Mg
Q1NTIFRlc3Q6IENTU1N0eWxlRGVjbGFyYXRpb24gcHJvcGVydGllcyBhcmUgZGVmaW5lZCBhcyBX
ZWJJREwgYXR0cmlidXRlcywgbm90IHVzaW5nIGdldE93blByb3BlcnR5TmFtZXMoKQogCkluZGV4
OiBMYXlvdXRUZXN0cy9qcy9kb20vcHV0LW92ZXJyaWRlLXNob3VsZC1ub3QtdXNlLWljLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL3B1dC1vdmVycmlkZS1zaG91bGQtbm90
LXVzZS1pYy5odG1sCShyZXZpc2lvbiAyNjg1NTEpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vcHV0
LW92ZXJyaWRlLXNob3VsZC1ub3QtdXNlLWljLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsMTAg
KzgsMTAgQEAKIDxzY3JpcHQ+CiAgICAgdGVzdChmdW5jdGlvbigpIHsKICAgICAgICAgZnVuY3Rp
b24gdHJhbnNpdGlvbmVkKCkgewotICAgICAgICAgICAgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdwJykuc3R5bGU7CisgICAgICAgICAgICBkYXRhc2V0ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgncCcpLmRhdGFzZXQ7CiAgICAgICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgMjA7
IGkrKykKLSAgICAgICAgICAgICAgICBzdHlsZVsncCcraV0gPSBpOwotICAgICAgICAgICAgcmV0
dXJuIHN0eWxlOworICAgICAgICAgICAgICAgIGRhdGFzZXRbJ3AnK2ldID0gaTsKKyAgICAgICAg
ICAgIHJldHVybiBkYXRhc2V0OwogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gcHV0dGVy
KG8pIHsKSW5kZXg6IExheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb25zLXBhcnNpbmct
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5z
aXRpb25zLXBhcnNpbmctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjg1NTEpCisrKyBMYXlvdXRU
ZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9ucy1wYXJzaW5nLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtNiw4ICs2LDYgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQQogVmFsaWQgdHJhbnNpdGlvbi1wcm9wZXJ0eSB2YWx1ZXMuCiBQQVNTIGNvbXB1dGVk
U3R5bGUudHJhbnNpdGlvblByb3BlcnR5IGlzICdhbGwnCiBQQVNTIGNvbXB1dGVkU3R5bGUud2Vi
a2l0VHJhbnNpdGlvblByb3BlcnR5IGlzICdhbGwnCi1QQVNTIE9iamVjdC5rZXlzKHN0eWxlKS5p
bmRleE9mKCd0cmFuc2l0aW9uUHJvcGVydHknKSBpcyBub3QgLTEKLVBBU1MgT2JqZWN0LmtleXMo
c3R5bGUpLmluZGV4T2YoJ3dlYmtpdFRyYW5zaXRpb25Qcm9wZXJ0eScpIGlzIC0xCiBQQVNTIHN0
eWxlLnRyYW5zaXRpb25Qcm9wZXJ0eSBpcyAnbm9uZScKIFBBU1MgY29tcHV0ZWRTdHlsZS50cmFu
c2l0aW9uUHJvcGVydHkgaXMgJ25vbmUnCiBQQVNTIHN0eWxlLndlYmtpdFRyYW5zaXRpb25Qcm9w
ZXJ0eSBpcyAnbm9uZScKQEAgLTEwMCw4ICs5OCw2IEBAIFBBU1MgY29tcHV0ZWRTdHlsZS53ZWJr
aXRUcmFuc2l0aW9uUHJvcGUKIFZhbGlkIHRyYW5zaXRpb24tZHVyYXRpb24gdmFsdWVzLgogUEFT
UyBjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiBpcyAnMHMnCiBQQVNTIGNvbXB1dGVk
U3R5bGUud2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uIGlzICcwcycKLVBBU1MgT2JqZWN0LmtleXMo
c3R5bGUpLmluZGV4T2YoJ3RyYW5zaXRpb25EdXJhdGlvbicpIGlzIG5vdCAtMQotUEFTUyBPYmpl
Y3Qua2V5cyhzdHlsZSkuaW5kZXhPZignd2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uJykgaXMgLTEK
IFBBU1Mgc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uIGlzICcwcycKIFBBU1MgY29tcHV0ZWRTdHls
ZS50cmFuc2l0aW9uRHVyYXRpb24gaXMgJzBzJwogUEFTUyBzdHlsZS53ZWJraXRUcmFuc2l0aW9u
RHVyYXRpb24gaXMgJzBzJwpAQCAtMTUwLDggKzE0Niw2IEBAIFBBU1MgY29tcHV0ZWRTdHlsZS53
ZWJraXRUcmFuc2l0aW9uRHVyYXQKIFZhbGlkIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIHZh
bHVlcy4KIFBBU1MgY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24gaXMgJ2Vh
c2UnCiBQQVNTIGNvbXB1dGVkU3R5bGUud2Via2l0VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIGlz
ICdlYXNlJwotUEFTUyBPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZigndHJhbnNpdGlvblRpbWlu
Z0Z1bmN0aW9uJykgaXMgbm90IC0xCi1QQVNTIE9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd3
ZWJraXRUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb24nKSBpcyAtMQogUEFTUyBzdHlsZS50cmFuc2l0
aW9uVGltaW5nRnVuY3Rpb24gaXMgJ2xpbmVhcicKIFBBU1MgY29tcHV0ZWRTdHlsZS50cmFuc2l0
aW9uVGltaW5nRnVuY3Rpb24gaXMgJ2xpbmVhcicKIFBBU1Mgc3R5bGUud2Via2l0VHJhbnNpdGlv
blRpbWluZ0Z1bmN0aW9uIGlzICdsaW5lYXInCkBAIC0zMDAsOCArMjk0LDYgQEAgUEFTUyBjb21w
dXRlZFN0eWxlLndlYmtpdFRyYW5zaXRpb25UaW1pbgogVmFsaWQgdHJhbnNpdGlvbi1kZWxheSB2
YWx1ZXMuCiBQQVNTIGNvbXB1dGVkU3R5bGUudHJhbnNpdGlvbkRlbGF5IGlzICcwcycKIFBBU1Mg
Y29tcHV0ZWRTdHlsZS53ZWJraXRUcmFuc2l0aW9uRGVsYXkgaXMgJzBzJwotUEFTUyBPYmplY3Qu
a2V5cyhzdHlsZSkuaW5kZXhPZigndHJhbnNpdGlvbkRlbGF5JykgaXMgbm90IC0xCi1QQVNTIE9i
amVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd3ZWJraXRUcmFuc2l0aW9uRGVsYXknKSBpcyAtMQog
UEFTUyBzdHlsZS50cmFuc2l0aW9uRGVsYXkgaXMgJzBzJwogUEFTUyBjb21wdXRlZFN0eWxlLnRy
YW5zaXRpb25EZWxheSBpcyAnMHMnCiBQQVNTIHN0eWxlLndlYmtpdFRyYW5zaXRpb25EZWxheSBp
cyAnMHMnCkBAIC0zNTAsOCArMzQyLDYgQEAgUEFTUyBjb21wdXRlZFN0eWxlLndlYmtpdFRyYW5z
aXRpb25EZWxheQogVmFsaWQgdHJhbnNpdGlvbiBzaG9ydGhhbmQgdmFsdWVzLgogUEFTUyBjb21w
dXRlZFN0eWxlLnRyYW5zaXRpb24gaXMgJ2FsbCAwcyBlYXNlIDBzJwogUEFTUyBjb21wdXRlZFN0
eWxlLndlYmtpdFRyYW5zaXRpb24gaXMgJ2FsbCAwcyBlYXNlIDBzJwotUEFTUyBPYmplY3Qua2V5
cyhzdHlsZSkuaW5kZXhPZigndHJhbnNpdGlvbicpIGlzIG5vdCAtMQotUEFTUyBPYmplY3Qua2V5
cyhzdHlsZSkuaW5kZXhPZignd2Via2l0VHJhbnNpdGlvbicpIGlzIC0xCiBQQVNTIHN0eWxlLnRy
YW5zaXRpb24gaXMgJ25vbmUnCiBQQVNTIGNvbXB1dGVkU3R5bGUudHJhbnNpdGlvbiBpcyAnbm9u
ZSAwcyBlYXNlIDBzJwogUEFTUyBzdHlsZS53ZWJraXRUcmFuc2l0aW9uIGlzICdub25lJwpJbmRl
eDogTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbnMtcGFyc2luZy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb25zLXBhcnNpbmcuaHRt
bAkocmV2aXNpb24gMjY4NTUxKQorKysgTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlv
bnMtcGFyc2luZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw4ICszMCw2IEBAIHNob3VsZEJl
KCJjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25Qcm9wZXIKIHNob3VsZEJlKCJjb21wdXRlZFN0eWxl
LndlYmtpdFRyYW5zaXRpb25Qcm9wZXJ0eSIsICInYWxsJyIpOwogCiBzdHlsZS50cmFuc2l0aW9u
UHJvcGVydHkgPSAibm9uZSI7Ci1zaG91bGROb3RCZSgiT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4
T2YoJ3RyYW5zaXRpb25Qcm9wZXJ0eScpIiwgIi0xIik7Ci1zaG91bGRCZSgiT2JqZWN0LmtleXMo
c3R5bGUpLmluZGV4T2YoJ3dlYmtpdFRyYW5zaXRpb25Qcm9wZXJ0eScpIiwgIi0xIik7CiBzaG91
bGRCZSgic3R5bGUudHJhbnNpdGlvblByb3BlcnR5IiwgIidub25lJyIpOwogc2hvdWxkQmUoImNv
bXB1dGVkU3R5bGUudHJhbnNpdGlvblByb3BlcnR5IiwgIidub25lJyIpOwogc2hvdWxkQmUoInN0
eWxlLndlYmtpdFRyYW5zaXRpb25Qcm9wZXJ0eSIsICInbm9uZSciKTsKQEAgLTE3Niw4ICsxNzQs
NiBAQCBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uRHVyYXRpCiBzaG91bGRCZSgi
Y29tcHV0ZWRTdHlsZS53ZWJraXRUcmFuc2l0aW9uRHVyYXRpb24iLCAiJzBzJyIpOwogCiBzdHls
ZS50cmFuc2l0aW9uRHVyYXRpb24gPSAiMHMiOwotc2hvdWxkTm90QmUoIk9iamVjdC5rZXlzKHN0
eWxlKS5pbmRleE9mKCd0cmFuc2l0aW9uRHVyYXRpb24nKSIsICItMSIpOwotc2hvdWxkQmUoIk9i
amVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd3ZWJraXRUcmFuc2l0aW9uRHVyYXRpb24nKSIsICIt
MSIpOwogc2hvdWxkQmUoInN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiIsICInMHMnIik7CiBzaG91
bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uRHVyYXRpb24iLCAiJzBzJyIpOwogc2hvdWxk
QmUoInN0eWxlLndlYmtpdFRyYW5zaXRpb25EdXJhdGlvbiIsICInMHMnIik7CkBAIC0yNTYsOCAr
MjUyLDYgQEAgc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJhbnNpdGlvblRpbWluZwogc2hvdWxk
QmUoImNvbXB1dGVkU3R5bGUud2Via2l0VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIiwgIidlYXNl
JyIpOwogCiBzdHlsZS50cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24gPSAibGluZWFyIjsKLXNob3Vs
ZE5vdEJlKCJPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZigndHJhbnNpdGlvblRpbWluZ0Z1bmN0
aW9uJykiLCAiLTEiKTsKLXNob3VsZEJlKCJPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZignd2Vi
a2l0VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uJykiLCAiLTEiKTsKIHNob3VsZEJlKCJzdHlsZS50
cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24iLCAiJ2xpbmVhciciKTsKIHNob3VsZEJlKCJjb21wdXRl
ZFN0eWxlLnRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiIsICInbGluZWFyJyIpOwogc2hvdWxkQmUo
InN0eWxlLndlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiIsICInbGluZWFyJyIpOwpAQCAt
NDg1LDggKzQ3OSw2IEBAIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25EZWxheSIK
IHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLndlYmtpdFRyYW5zaXRpb25EZWxheSIsICInMHMnIik7
CiAKIHN0eWxlLnRyYW5zaXRpb25EZWxheSA9ICIwcyI7Ci1zaG91bGROb3RCZSgiT2JqZWN0Lmtl
eXMoc3R5bGUpLmluZGV4T2YoJ3RyYW5zaXRpb25EZWxheScpIiwgIi0xIik7Ci1zaG91bGRCZSgi
T2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3dlYmtpdFRyYW5zaXRpb25EZWxheScpIiwgIi0x
Iik7CiBzaG91bGRCZSgic3R5bGUudHJhbnNpdGlvbkRlbGF5IiwgIicwcyciKTsKIHNob3VsZEJl
KCJjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25EZWxheSIsICInMHMnIik7CiBzaG91bGRCZSgic3R5
bGUud2Via2l0VHJhbnNpdGlvbkRlbGF5IiwgIicwcyciKTsKQEAgLTU2NSw4ICs1NTcsNiBAQCBz
aG91bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uIiwgIidhCiBzaG91bGRCZSgiY29tcHV0
ZWRTdHlsZS53ZWJraXRUcmFuc2l0aW9uIiwgIidhbGwgMHMgZWFzZSAwcyciKTsKIAogc3R5bGUu
dHJhbnNpdGlvbiA9ICJub25lIjsKLXNob3VsZE5vdEJlKCJPYmplY3Qua2V5cyhzdHlsZSkuaW5k
ZXhPZigndHJhbnNpdGlvbicpIiwgIi0xIik7Ci1zaG91bGRCZSgiT2JqZWN0LmtleXMoc3R5bGUp
LmluZGV4T2YoJ3dlYmtpdFRyYW5zaXRpb24nKSIsICItMSIpOwogc2hvdWxkQmUoInN0eWxlLnRy
YW5zaXRpb24iLCAiJ25vbmUnIik7CiBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9u
IiwgIidub25lIDBzIGVhc2UgMHMnIik7CiBzaG91bGRCZSgic3R5bGUud2Via2l0VHJhbnNpdGlv
biIsICInbm9uZSciKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411509</attachid>
            <date>2020-10-15 16:48:37 -0700</date>
            <delta_ts>2020-10-15 17:28:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217623-20201015164837.patch</filename>
            <type>text/plain</type>
            <size>50935</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2ODU2MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBACisyMDIwLTEwLTE1ICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIGJy
ZWFrcyBKUyBzcGVjIChwcm9wZXJ0aWVzIG5vdCBzaG93aW5nIHVwIGluIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eU5hbWVzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE3NjIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAg
ICAgUmVwbGFjZSBuYW1lZCBnZXR0ZXIvc2V0dGVyIGJhc2VkIGltcGxlbWVudGF0aW9uIG9mIGFj
Y2VzcyB0byBDU1NTdHlsZURlY2xhcmF0aW9uIHByb3BlcnR5IHZhbHVlcworICAgICAgICB3aXRo
IGEgZ2VuZXJhdGVkIHBhcnRpYWwgaW50ZXJmYWNlIHRoYXQgbGlzdHMgYWxsIHRoZSBwcm9wZXJ0
aWVzIGV4YWN0bHkuCisgICAgICAgIAorICAgICAgICBUbyBrZWVwIHRoaW5ncyBjb25zaXN0ZW50
IHdpdGggZXhpc3RpbmcgYmVoYXZpb3IsIGluIGFkZGl0aW9uIHRvIHRoZSBzcGVjJ2QgcHJvcGVy
dGllcywgd2UgYWxzbworICAgICAgICBtYWludGFpbiBhZGRpdGlvbmFsIHByb3BlcnRpZXMgc3Vj
aCBhcyBFcHViKiAoaW4gYWRkaXRpb24gdG8gdGhlIGVwdWIqIHByb3BlcnRpZXMgdGhlIHNwZWMg
c2F5cworICAgICAgICB3ZSBzaG91bGQpLCBhbmQgQ3NzLCBjc3MsIFBvcywgcG9zLCBQaXhlbCwg
YW5kIFBpeGVsIHByZWZpeGVkIHByb3BlcnRpZXMuIEFzIGEgZm9sbG93IHVwLCB3ZSBzaG91bGQK
KyAgICAgICAgY29uc2lkZXIgcmVtb3ZpbmcgdGhlc2UgYXMgdGhleSBhcmUgbm90IHN1cHBvcnRl
ZCBieSB0aGUgc3RhbmRhcmQgb3Igb3RoZXIgYnJvd3NlcnMuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICBHZW5lcmF0ZSBDU1NTdHlsZURl
Y2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsIGFuZCBlbnN1cmUgaXQgaXMgY29tcGlsZSB0b2dl
dGhlciB3aXRoIHRoZSBvdGhlcgorICAgICAgICBiaW5kaW5ncy4KKworICAgICAgICAqIGNzcy9t
YWtlcHJvcC5wbDoKKyAgICAgICAgQWRkIGdlbmVyYXRpb24gb2YgQ1NTU3R5bGVEZWNsYXJhdGlv
bitQcm9wZXJ0eU5hbWVzLmlkbCBmcm9tIENTU1Byb3BlcnRpZXMuanNvbi4KKworICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uOgorICAgICAgICBSZW1vdmUgQ2Fs
bE5hbWVkU2V0dGVyT25seUZvclN1cHBvcnRlZFByb3BlcnRpZXMgYW5kIERlZmF1bHREZWZpbmVP
d25Qcm9wZXJ0eSBleHRlbmRlZCBhdHRyaWJ1dGVzLAorICAgICAgICB3aGljaCBub3cgaGF2ZSBu
byB1c2VycywgYW5kIGFkZCB0aGUgQ1NTUHJvcGVydHkgZXh0ZW5kZWQgYXR0cmlidXRlLCB1c2Vk
IHRvIGF2b2lkIHVubmVjZXNzYXJ5CisgICAgICAgIGltcGxlbWVudGF0aW9uIG92ZXJoZWFkIGZv
ciBlYWNoIHByb3BlcnR5LiBSYXRoZXIsIGluIGFuIGFuYWxvZ291cyB3YXkgdG8gRXZlbnRIYW5k
bGVycywgdGhlIGJpbmRpbmdzCisgICAgICAgIG5vdyBkaXJlY3RseSBwYXNzIGluIHRoZSBhc3Nv
Y2lhdGUgQ1NTUHJvcGVydHlJRCB0byBhbiBhcHByb3ByaWF0ZSBDU1NTdHlsZURlY2xhcmF0aW9u
IGZ1bmN0aW9uLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG06CisgICAgICAgIChHZW5lcmF0ZUludm9rZU5hbWVkUHJvcGVydHlTZXR0ZXIpOgorICAgICAg
ICAoR2VuZXJhdGVQdXQpOgorICAgICAgICAoR2VuZXJhdGVQdXRCeUluZGV4KToKKyAgICAgICAg
KEdlbmVyYXRlRGVmaW5lT3duUHJvcGVydHkpOgorICAgICAgICBSZW1vdmUgYWxsIHVzZSBvZiBD
YWxsTmFtZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVydGllcy4KKworICAgICAgICAoSW5z
dGFuY2VPdmVycmlkZXNEZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgIFJlbW92ZSBzdXBwb3J0
IGZvciBEZWZhdWx0RGVmaW5lT3duUHJvcGVydHksIHdoaWNoIGlzIG5vdyB1bnVzZWQuCisKKyAg
ICAgICAgKFRvTWV0aG9kTmFtZSk6CisgICAgICAgIE1hdGNoIHRoZSBhY3R1YWwgc2V0dGluZyBu
YW1lLCBhbmQgZG9uJ3QgdHJhbnNmb3JtIG5hbWVzIHRoYXQgc3RhcnQgd2l0aCBDU1NPTS4KKwor
ICAgICAgICAoR2VuZXJhdGVBdHRyaWJ1dGVHZXR0ZXJCb2R5RGVmaW5pdGlvbik6CisgICAgICAg
IChHZW5lcmF0ZUF0dHJpYnV0ZVNldHRlckJvZHlEZWZpbml0aW9uKToKKyAgICAgICAgQWRkIHN1
cHBvcnQgZm9yIHRoZSBuZXcgQ1NTUHJvcGVydHkgZXh0ZW5kZWQgYXR0cmlidXRlIHdoaWNoIHVz
ZXMgdGhlIHBhc3NzZWQKKyAgICAgICAgdmFsdWUgdG8gdG8gZGlyZWN0bHkgY2FsbCBDU1NTdHls
ZURlY2xhcmF0aW9uIGZ1bmN0aW9ucyB3aXRoIGEgQ1NTUHJvcGVydHlJRC4KKworICAgICAgICAq
IGNzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxl
RGVjbGFyYXRpb246OnNldFByb3BlcnR5VmFsdWVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWxGb3JQb3NPclBp
eGVsUHJlZml4ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbjo6c2V0
UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZpeGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb246OmdldENTU1Byb3BlcnR5SURGcm9tSmF2YVNjcmlw
dFByb3BlcnR5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uOjpu
YW1lZEl0ZW0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlv
bjo6c2V0TmFtZWRJdGVtKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlRGVj
bGFyYXRpb246OnN1cHBvcnRlZFByb3BlcnR5TmFtZXMgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIGNzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmg6CisgICAgICAgIFJlcGxhY2Ugb2xkIG5hbWVk
IGdldHRlci9zZXR0ZXIgc3VwcG9ydCBjb2RlIHdpdGggbmV3IGhlbHBlcnMgd2hpY2ggb3BlcmF0
ZSBkaXJlY3RseQorICAgICAgICBvbiBDU1NQcm9wZXJ0eUlEcy4KKworICAgICAgICAqIGNzcy9D
U1NTdHlsZURlY2xhcmF0aW9uLmlkbDoKKyAgICAgICAgVXBkYXRlIHRvIG1hdGNoIHRoZSBjdXJy
ZW50IHNwZWMgKGFsbW9zdCwgc3RpbGwgbmVlZCB0byBnZXRQcm9wZXJ0eVByaW9yaXR5IHRvIG5v
dCByZXR1cm4KKyAgICAgICAgbnVsbCkgYW5kIHJlbW92ZSBjdXN0b20gbmFtZWQgZ2V0dGVyL3Nl
dHRlciBvcGVyYXRpb25zLgorCiAyMDIwLTEwLTE1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgQ2FjaGUgSlMgYXJndW1lbnRzIGluIEF1ZGlvV29ya2xldFByb2Nl
c3Nvcjo6cHJvY2VzcygpIGZvciBwZXJmb3JtYW5jZQpJbmRleDogU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJ
KHJldmlzaW9uIDI2ODU2MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xODc5LDcgKzE4NzksNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJD
RVMgJHtXZWJDb3JlX0RFCiAKICMgR2VuZXJhdGUgQ1NTIHByb3BlcnR5IG5hbWVzCiBhZGRfY3Vz
dG9tX2NvbW1hbmQoCi0gICAgT1VUUFVUICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9D
U1NQcm9wZXJ0aWVzLmpzb24gJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1Byb3Bl
cnR5TmFtZXMuaCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlOYW1l
cy5jcHAgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L0NTU1Byb3BlcnR5TmFtZXMuZ3Bl
cmYgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0eWxlQnVpbGRlckdlbmVyYXRlZC5j
cHAgJHtXZWJDb3JlX0RFUklWRURfU09VUkNFU19ESVJ9L1N0eWxlUHJvcGVydHlTaG9ydGhhbmRG
dW5jdGlvbnMuaCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVQcm9wZXJ0eVNo
b3J0aGFuZEZ1bmN0aW9ucy5jcHAKKyAgICBPVVRQVVQgJHtXZWJDb3JlX0RFUklWRURfU09VUkNF
U19ESVJ9L0NTU1Byb3BlcnRpZXMuanNvbiAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0v
Q1NTUHJvcGVydHlOYW1lcy5oICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NQcm9w
ZXJ0eU5hbWVzLmNwcCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vQ1NTUHJvcGVydHlO
YW1lcy5ncGVyZiAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVCdWlsZGVyR2Vu
ZXJhdGVkLmNwcCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJUn0vU3R5bGVQcm9wZXJ0eVNo
b3J0aGFuZEZ1bmN0aW9ucy5oICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZVBy
b3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmNwcCAke1dlYkNvcmVfREVSSVZFRF9TT1VSQ0VTX0RJ
Un0vQ1NTU3R5bGVEZWNsYXJhdGlvbitQcm9wZXJ0eU5hbWVzLmlkbAogICAgIE1BSU5fREVQRU5E
RU5DWSAke1dFQkNPUkVfRElSfS9jc3MvbWFrZXByb3AucGwKICAgICBERVBFTkRTICR7V2ViQ29y
ZV9DU1NfUFJPUEVSVFlfTkFNRVN9CiAgICAgV09SS0lOR19ESVJFQ1RPUlkgJHtXZWJDb3JlX0RF
UklWRURfU09VUkNFU19ESVJ9CkBAIC0xODg5LDYgKzE4ODksNyBAQCBhZGRfY3VzdG9tX2NvbW1h
bmQoCiBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtXZWJDb3JlX0RFUklWRURfU09VUkNF
U19ESVJ9L0NTU1Byb3BlcnR5TmFtZXMuY3BwKQogbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VT
ICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9TdHlsZUJ1aWxkZXJHZW5lcmF0ZWQuY3Bw
KQogbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNf
RElSfS9TdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmNwcCkKK2xpc3QoQVBQRU5EIFdl
YkNvcmVfSURMX0ZJTEVTICR7V2ViQ29yZV9ERVJJVkVEX1NPVVJDRVNfRElSfS9DU1NTdHlsZURl
Y2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsKQogQUREX1NPVVJDRV9XRUJDT1JFX0RFUklWRURf
REVQRU5ERU5DSUVTKCR7V0VCQ09SRV9ESVJ9L2Nzcy9DU1NQYXJzZXIuY3BwIENTU1ZhbHVlS2V5
d29yZHMuaCkKIAogIyBHZW5lcmF0ZSBDU1MgdmFsdWUga2V5d29yZHMKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAy
Njg1NjApCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dAkod29ya2luZyBjb3B5KQpAQCAtMyw2ICszLDcgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYgogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvQnl0ZUxlbmd0aFF1ZXVpbmdTdHJhdGVneUJ1aWx0aW5zLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1Byb3BlcnR5TmFtZXMuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9DU1NQcm9wZXJ0eU5hbWVz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1N0eWxl
RGVjbGFyYXRpb24rUHJvcGVydHlOYW1lcy5pZGwKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0NTU1ZhbHVlS2V5d29yZHMuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9DU1NWYWx1ZUtleXdvcmRzLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0NvbG9yRGF0YS5jcHAKQEAgLTI5
MCw2ICsyOTEsOCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU1J1bGUuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NSdWxlTGlz
dC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NT
UnVsZUxpc3QuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNDU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU1N0eWxlRGVjbGFyYXRpb24rUHJvcGVy
dHlOYW1lcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0NTU1N0eWxlRGVjbGFyYXRpb24uY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0NTU1N0eWxlRGVjbGFyYXRpb24uaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NTdHlsZVJ1bGUuY3BwCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDI2ODU2MCkKKysrIFNvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTEzMjcsNiArMTMyNyw3
IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL3htbC9YUGF0aFJlc3VsdC5p
ZGwgXAogICAgICQoV2ViQ29yZSkveG1sL1hTTFRQcm9jZXNzb3IuaWRsIFwKICAgICBJbnRlcm5h
bFNldHRpbmdzR2VuZXJhdGVkLmlkbCBcCisgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbitQcm9wZXJ0
eU5hbWVzLmlkbCBcCiAjCiAKICMgLS0tLS0tLS0KQEAgLTE0MTgsNiArMTQxOSw3IEBAIGFsbCA6
IFwKICAgICBTdHlsZUJ1aWxkZXJHZW5lcmF0ZWQuY3BwIFwKICAgICBTdHlsZVByb3BlcnR5U2hv
cnRoYW5kRnVuY3Rpb25zLmNwcCBcCiAgICAgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9u
cy5oIFwKKyAgICBDU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsIFwKICAgICBV
c2VyQWdlbnRTdHlsZVNoZWV0cy5oIFwKICAgICBXZWJLaXRGb250RmFtaWx5TmFtZXMuY3BwIFwK
ICAgICBXZWJLaXRGb250RmFtaWx5TmFtZXMuaCBcCkBAIC0xNDQ1LDYgKzE0NDcsNyBAQCBDU1Nf
UFJPUEVSVFlfTkFNRV9GSUxFUyA9IFwKICAgICBTdHlsZUJ1aWxkZXJHZW5lcmF0ZWQuY3BwIFwK
ICAgICBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmNwcCBcCiAgICAgU3R5bGVQcm9w
ZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5oIFwKKyAgICBDU1NTdHlsZURlY2xhcmF0aW9uK1Byb3Bl
cnR5TmFtZXMuaWRsIFwKICMKIENTU19QUk9QRVJUWV9OQU1FX0ZJTEVTX1BBVFRFUk5TID0gJChz
dWJzdCAuLCUsJChDU1NfUFJPUEVSVFlfTkFNRV9GSUxFUykpCiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lv
biAyNjg1NjApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtMTE4NywxNSArMTE4NywxMiBAQCBzdWIgR2VuZXJh
dGVJbnZva2VOYW1lZFByb3BlcnR5U2V0dGVyCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5k
ZW50IC4gImF1dG8gbmF0aXZlVmFsdWUgPSAke25hdGl2ZVZhbHVlfTtcbiIpOwogICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUs
IHRydWUpO1xuIik7CiAKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiYm9vbCBp
c1Byb3BlcnR5U3VwcG9ydGVkID0gdHJ1ZTtcbiIpIGlmICRuYW1lZFNldHRlck9wZXJhdGlvbi0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q2FsbE5hbWVkU2V0dGVyT25seUZvclN1cHBvcnRlZFByb3Bl
cnRpZXN9OwotCiAgICAgbXkgJG5hbWVkU2V0dGVyRnVuY3Rpb25OYW1lID0gJG5hbWVkU2V0dGVy
T3BlcmF0aW9uLT5uYW1lIHx8ICJzZXROYW1lZEl0ZW0iOwogICAgIG15ICRuYXRpdmVWYWx1ZVBh
c3NFeHByZXNzaW9uID0gUGFzc0FyZ3VtZW50RXhwcmVzc2lvbigibmF0aXZlVmFsdWUiLCAkYXJn
dW1lbnQpOwogCiAgICAgbXkgQGFyZ3VtZW50cyA9ICgpOwogICAgIHB1c2goQGFyZ3VtZW50cywg
InByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSkiKTsKICAgICBwdXNoKEBhcmd1bWVu
dHMsICRuYXRpdmVWYWx1ZVBhc3NFeHByZXNzaW9uKTsKLSAgICBwdXNoKEBhcmd1bWVudHMsICJp
c1Byb3BlcnR5U3VwcG9ydGVkIikgaWYgJG5hbWVkU2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPntDYWxsTmFtZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVydGllc307CiAK
ICAgICBteSAkZnVuY3Rpb25TdHJpbmcgPSAidGhpc09iamVjdC0+d3JhcHBlZCgpLiR7bmFtZWRT
ZXR0ZXJGdW5jdGlvbk5hbWV9KCIgLiBqb2luKCIsICIsIEBhcmd1bWVudHMpIC4gIikiOwogICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdF
eGNlcHRpb25JZk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZd
IHsgcmV0dXJuICR7ZnVuY3Rpb25TdHJpbmd9OyB9KTtcbiIpOwpAQCAtMTI1MCwxMCArMTI0Nyw2
IEBAIHN1YiBHZW5lcmF0ZVB1dAogICAgICAgICB9CiAKICAgICAgICAgR2VuZXJhdGVJbnZva2VO
YW1lZFByb3BlcnR5U2V0dGVyKCRvdXRwdXRBcnJheSwgJGFkZGl0aW9uYWxJbmRlbnQgLiAiICAg
ICAgICAiLCAkaW50ZXJmYWNlLCAkbmFtZWRTZXR0ZXJPcGVyYXRpb24sICJ2YWx1ZSIpOwotICAg
ICAgICBpZiAoJG5hbWVkU2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDYWxs
TmFtZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVydGllc30pIHsKLSAgICAgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgJGFkZGl0aW9uYWxJbmRlbnQgLiAiICAgICAgICBpZiAoIWlzUHJv
cGVydHlTdXBwb3J0ZWQpXG4iKTsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGFk
ZGl0aW9uYWxJbmRlbnQgLiAiICAgICAgICAgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXQodGhpc09i
amVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVy
dHlTbG90KTtcbiIpOwotICAgICAgICB9CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGFk
ZGl0aW9uYWxJbmRlbnQgLiAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIpOwogCiAgICAgICAgIGlm
ICghJGxlZ2FjeU92ZXJyaWRlQnVpbHRpbnMpIHsKQEAgLTEyODYsNyArMTI3OSw3IEBAIHN1YiBH
ZW5lcmF0ZVB1dEJ5SW5kZXgKICAgICBteSAkaW5kZXhlZFNldHRlck9wZXJhdGlvbiA9IEdldElu
ZGV4ZWRTZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSk7CiAgICAgCiAgICAgbXkgJGxlZ2FjeU92
ZXJyaWRlQnVpbHRpbnMgPSAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNFeHRlbmRlZEF0dHJpYnV0
ZSgkaW50ZXJmYWNlLCAiTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIpOwotICAgIG15ICRlbGxpZGVz
Q2FsbHNUb0Jhc2UgPSAoJG5hbWVkU2V0dGVyT3BlcmF0aW9uICYmICRsZWdhY3lPdmVycmlkZUJ1
aWx0aW5zKSAmJiAhJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57UGx1Z2lufSAmJiAh
JG5hbWVkU2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDYWxsTmFtZWRTZXR0
ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVydGllc307CisgICAgbXkgJGVsbGlkZXNDYWxsc1RvQmFz
ZSA9ICgkbmFtZWRTZXR0ZXJPcGVyYXRpb24gJiYgJGxlZ2FjeU92ZXJyaWRlQnVpbHRpbnMpICYm
ICEkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntQbHVnaW59OwogICAgIAogICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgImJvb2wgJHtjbGFzc05hbWV9OjpwdXRCeUluZGV4KEpTQ2VsbCog
Y2VsbCwgSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIHVuc2lnbmVkIGluZGV4
LCBKU1ZhbHVlIHZhbHVlLCBib29sIiAuICghJGVsbGlkZXNDYWxsc1RvQmFzZSA/ICIgc2hvdWxk
VGhyb3ciIDogIiIpIC4gIilcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwpA
QCAtMTMyOCwxMCArMTMyMSw2IEBAIHN1YiBHZW5lcmF0ZVB1dEJ5SW5kZXgKICAgICAgICAgfQog
ICAgICAgICAKICAgICAgICAgR2VuZXJhdGVJbnZva2VOYW1lZFByb3BlcnR5U2V0dGVyKCRvdXRw
dXRBcnJheSwgJGFkZGl0aW9uYWxJbmRlbnQgLiAiICAgICIsICRpbnRlcmZhY2UsICRuYW1lZFNl
dHRlck9wZXJhdGlvbiwgInZhbHVlIik7Ci0gICAgICAgIGlmICgkbmFtZWRTZXR0ZXJPcGVyYXRp
b24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NhbGxOYW1lZFNldHRlck9ubHlGb3JTdXBwb3J0ZWRQ
cm9wZXJ0aWVzfSkgewotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkYWRkaXRpb25h
bEluZGVudCAuICIgICAgaWYgKCFpc1Byb3BlcnR5U3VwcG9ydGVkKVxuIik7Ci0gICAgICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50IC4gIiAgICAgICAgcmV0dXJu
IEpTT2JqZWN0OjpwdXRCeUluZGV4KGNlbGwsIGxleGljYWxHbG9iYWxPYmplY3QsIGluZGV4LCB2
YWx1ZSwgc2hvdWxkVGhyb3cpO1xuIik7Ci0gICAgICAgIH0KICAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgcmV0dXJuIHRydWU7XG4iKTsKICAgICAg
ICAgCiAgICAgICAgIGlmICghJGxlZ2FjeU92ZXJyaWRlQnVpbHRpbnMpIHsKQEAgLTE0NzUsMTAg
KzE0NjQsNyBAQCBzdWIgR2VuZXJhdGVEZWZpbmVPd25Qcm9wZXJ0eQogICAgICAgICAgICAgCiAg
ICAgICAgICAgICAjIDIuMi4yLiBJbnZva2UgdGhlIG5hbWVkIHByb3BlcnR5IHNldHRlciB3aXRo
IFAgYW5kIERlc2MuW1tWYWx1ZV1dLgogICAgICAgICAgICAgR2VuZXJhdGVJbnZva2VOYW1lZFBy
b3BlcnR5U2V0dGVyKCRvdXRwdXRBcnJheSwgJGFkZGl0aW9uYWxJbmRlbnQgLiAiICAgICAgICAi
LCAkaW50ZXJmYWNlLCAkbmFtZWRTZXR0ZXJPcGVyYXRpb24sICJwcm9wZXJ0eURlc2NyaXB0b3Iu
dmFsdWUoKSIpOwotICAgICAgICAgICAgaWYgKCRuYW1lZFNldHRlck9wZXJhdGlvbi0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Q2FsbE5hbWVkU2V0dGVyT25seUZvclN1cHBvcnRlZFByb3BlcnRpZXN9
KSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVu
dCAuICIgICAgaWYgKCFpc1Byb3BlcnR5U3VwcG9ydGVkKVxuIik7Ci0gICAgICAgICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgICAgIHJldHVybiBK
U09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBw
cm9wZXJ0eU5hbWUsIHByb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpO1xuIik7Ci0gICAg
ICAgICAgICB9CisKICAgICAgICAgICAgICMgMi4yLjMuIFJldHVybiB0cnVlLgogICAgICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudCAuICIgICAgICAgIHJldHVy
biB0cnVlO1xuIik7CiAgICAgICAgIH0KQEAgLTIyMDQsOCArMjE5MCw2IEBAIHN1YiBJbnN0YW5j
ZU92ZXJyaWRlc0RlZmluZU93blByb3BlcnR5CiB7CiAgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0
OwogCi0gICAgcmV0dXJuIDAgaWYgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RGVm
YXVsdERlZmluZU93blByb3BlcnR5fTsKLQogICAgIHJldHVybiAkaW50ZXJmYWNlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPntDdXN0b21EZWZpbmVPd25Qcm9wZXJ0eX0KICAgICAgICAgfHwgR2V0SW5k
ZXhlZFNldHRlck9wZXJhdGlvbigkaW50ZXJmYWNlKQogICAgICAgICB8fCBHZXROYW1lZFNldHRl
ck9wZXJhdGlvbigkaW50ZXJmYWNlKTsKQEAgLTM5NzksNiArMzk2Myw5IEBAIHN1YiBHZXRTa2lw
VlRhYmxlVmFsaWRhdGlvbkZvckludGVyZmFjZQogc3ViIFRvTWV0aG9kTmFtZQogewogICAgIG15
ICRwYXJhbSA9IHNoaWZ0OworICAgIAorICAgIHJldHVybiAkcGFyYW0gaWYgJHBhcmFtID1+IC9e
Q1NTT00vOworCiAgICAgbXkgJHJldCA9IGxjZmlyc3QoJHBhcmFtKTsKICAgICAkcmV0ID1+IHMv
Y1NTL2Nzcy8gaWYgJHJldCA9fiAvXmNTUy87CiAgICAgJHJldCA9fiBzL2RPTS9kb20vIGlmICRy
ZXQgPX4gL15kT00vOwpAQCAtNTMyMiw2ICs1MzA5LDE1IEBAIHN1YiBHZW5lcmF0ZUF0dHJpYnV0
ZUdldHRlckJvZHlEZWZpbml0aW8KICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKUyIg
LiAkY29uc3RydWN0b3JUeXBlIC4gIi5oIiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gSlMiIC4gJGNvbnN0cnVjdG9yVHlwZSAuICI6
OiR7Y29uc3RydWN0b3JHZXR0ZXJ9KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0
aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTtcbiIpOwogICAgICAgICB9CisgICAgfSBlbHNpZiAo
JGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q1NTUHJvcGVydHl9KSB7CisgICAgICAg
ICRpbXBsSW5jbHVkZXN7IkNTU1Byb3BlcnR5TmFtZXMuaCJ9ID0gMTsKKyAgICAgICAgbXkgJHBy
b3BlcnR5SUQgPSAkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDU1NQcm9wZXJ0eX07
CisgICAgICAgIAorICAgICAgICBteSAkZ2V0dGVyTmFtZSA9ICRhdHRyaWJ1dGUtPnR5cGUtPmlz
VW5pb24gPyAiZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZpeGVkIiA6
ICJnZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWwiOworICAgICAgICAKKyAgICAgICAgbXkgJHRvSlNF
eHByZXNzaW9uID0gTmF0aXZlVG9KU1ZhbHVlVXNpbmdSZWZlcmVuY2VzKCRhdHRyaWJ1dGUsICRp
bnRlcmZhY2UsICJpbXBsLiR7Z2V0dGVyTmFtZX0oQ1NTUHJvcGVydHkke3Byb3BlcnR5SUR9KSIs
ICIqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpO1xuIik7CisgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KCR7dG9KU0V4cHJlc3Npb259KSk7XG4iKTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoJGF0
dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q2FjaGVkQXR0cmlidXRlfSkgewogICAgICAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmIChKU1ZhbHVlIGNhY2hlZFZhbHVlID0g
dGhpc09iamVjdC5tXyIgLiAkYXR0cmlidXRlLT5uYW1lIC4gIi5nZXQoKSlcbiIpOwpAQCAtNTQ2
Niw2ICs1NDYyLDIzIEBAIHN1YiBHZW5lcmF0ZUF0dHJpYnV0ZVNldHRlckJvZHlEZWZpbml0aW8K
ICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKCZ0
aGlzT2JqZWN0LCB2YWx1ZSk7XG4iKTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IGVuc3VyZVN0aWxsQWxpdmVIZXJlKHZhbHVlKTtcblxuIik7CiAgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICByZXR1cm4gdHJ1ZTtcbiIpOworICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+e0NTU1Byb3BlcnR5fSkgeworICAgICAgICAkaW1wbEluY2x1
ZGVzeyJDU1NQcm9wZXJ0eU5hbWVzLmgifSA9IDE7CisKKyAgICAgICAgbXkgJHByb3BlcnR5SUQg
PSAkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDU1NQcm9wZXJ0eX07CisgICAgICAg
IAorICAgICAgICBteSAkc2V0dGVyTmFtZSA9ICRhdHRyaWJ1dGUtPnR5cGUtPmlzVW5pb24gPyAi
c2V0UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZpeGVkIiA6ICJzZXRQcm9w
ZXJ0eVZhbHVlSW50ZXJuYWwiOworICAgICAgICAKKyAgICAgICAgbXkgJGV4Y2VwdGlvblRocm93
ZXIgPSBHZXRBdHRyaWJ1dGVFeGNlcHRpb25UaHJvd2VyKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUp
OworICAgICAgICBteSAkdG9OYXRpdmVFeHByZXNzaW9uID0gSlNWYWx1ZVRvTmF0aXZlKCRpbnRl
cmZhY2UsICRhdHRyaWJ1dGUsICJ2YWx1ZSIsICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+e0NvbmRpdGlvbmFsfSwgIiZsZXhpY2FsR2xvYmFsT2JqZWN0IiwgImxleGljYWxHbG9iYWxP
YmplY3QiLCAidGhpc09iamVjdCIsICIqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSIsICRleGNl
cHRpb25UaHJvd2VyKTsKKworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0byYg
aW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIiAgICBhdXRvIG5hdGl2ZVZhbHVlID0gJHt0b05hdGl2ZUV4cHJlc3Npb259O1xuIik7
CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRo
cm93U2NvcGUsIGZhbHNlKTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
QXR0cmlidXRlU2V0dGVyOjpjYWxsKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsm
XSB7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gaW1w
bC4ke3NldHRlck5hbWV9KENTU1Byb3BlcnR5JHtwcm9wZXJ0eUlEfSwgV1RGTW92ZShuYXRpdmVW
YWx1ZSkpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB9KTtcbiIpOwor
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIHRydWU7XG4iKTsKICAgICB9
IGVsc2lmICgkaXNDb25zdHJ1Y3RvcikgewogICAgICAgICBteSAkY29uc3RydWN0b3JUeXBlID0g
JGF0dHJpYnV0ZS0+dHlwZS0+bmFtZTsKICAgICAgICAgJGNvbnN0cnVjdG9yVHlwZSA9fiBzL0Nv
bnN0cnVjdG9yJC8vOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExB
dHRyaWJ1dGVzLmpzb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9JRExBdHRyaWJ1dGVzLmpzb24JKHJldmlzaW9uIDI2ODU2MCkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uCSh3b3JraW5nIGNvcHkpCkBA
IC0zOSw2ICszOSwxMCBAQAogICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9odG1sLnNw
ZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvY3VzdG9tLWVsZW1lbnRzLmh0bWwjY2VyZWFjdGlvbnMi
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCisgICAgICAgICJDU1NQcm9wZXJ0eSI6IHsKKyAg
ICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImF0dHJpYnV0ZSJdLAorICAgICAgICAgICAg
InZhbHVlcyI6IFsiKiJdCisgICAgICAgIH0sCiAgICAgICAgICJDYWNoZWRBdHRyaWJ1dGUiOiB7
CiAgICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJhdHRyaWJ1dGUiXQogICAgICAgICB9
LApAQCAtNDksOSArNTMsNiBAQAogICAgICAgICAiQ2FsbGJhY2tUaGlzT2JqZWN0IjogewogICAg
ICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiY2FsbGJhY2stZnVuY3Rpb24iLCAib3BlcmF0
aW9uIl0KICAgICAgICAgfSwKLSAgICAgICAgIkNhbGxOYW1lZFNldHRlck9ubHlGb3JTdXBwb3J0
ZWRQcm9wZXJ0aWVzIjogewotICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsib3BlcmF0
aW9uIl0KLSAgICAgICAgfSwKICAgICAgICAgIkNhbGxXaXRoIjogewogICAgICAgICAgICAgImNv
bnRleHRzQWxsb3dlZCI6IFsiYXR0cmlidXRlIiwgIm9wZXJhdGlvbiJdLAogICAgICAgICAgICAg
InZhbHVlcyI6IFsiRG9jdW1lbnQiLCAiRXhlY1N0YXRlIiwgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQiLCAiR2xvYmFsT2JqZWN0IiwgIkFjdGl2ZVdpbmRvdyIsICJGaXJzdFdpbmRvdyIsICJSZXNw
b25zaWJsZURvY3VtZW50IiwgIldvcmxkIl0sCkBAIC0xNTcsOSArMTU4LDYgQEAKICAgICAgICAg
IkRlZmF1bHQiOiB7CiAgICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJvcGVyYXRpb24i
XQogICAgICAgICB9LAotICAgICAgICAiRGVmYXVsdERlZmluZU93blByb3BlcnR5IjogewotICAg
ICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNlIl0KLSAgICAgICAgfSwKICAg
ICAgICAgIkRpc2FibGVkQnlRdWlyayI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQi
OiBbImludGVyZmFjZSIsICJkaWN0aW9uYXJ5IiwgImVudW0iLCAiYXR0cmlidXRlIiwgIm9wZXJh
dGlvbiIsICJjb25zdGFudCIsICJkaWN0aW9uYXJ5LW1lbWJlciIsICJpbmNsdWRlcyJdLAogICAg
ICAgICAgICAgInZhbHVlcyI6IFsiKiJdLApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0
eWxlRGVjbGFyYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZURlY2xhcmF0aW9uLmNwcAkocmV2aXNpb24gMjY4NTYwKQorKysgU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjgsNDggKzI2
OCw4IEBAIHN0YXRpYyBDU1NQcm9wZXJ0eUluZm8gcHJvcGVydHlJbmZvRnJvbUoKIAogfQogCi1D
U1NQcm9wZXJ0eUlEIENTU1N0eWxlRGVjbGFyYXRpb246OmdldENTU1Byb3BlcnR5SURGcm9tSmF2
YVNjcmlwdFByb3BlcnR5TmFtZShjb25zdCBBdG9tU3RyaW5nJiBwcm9wZXJ0eU5hbWUpCi17Ci0g
ICAgcmV0dXJuIHByb3BlcnR5SW5mb0Zyb21KYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1lKHByb3Bl
cnR5TmFtZSwgbnVsbHB0cikucHJvcGVydHlJRDsKLX0KLQotT3B0aW9uYWw8VmFyaWFudDxTdHJp
bmcsIGRvdWJsZT4+IENTU1N0eWxlRGVjbGFyYXRpb246Om5hbWVkSXRlbShjb25zdCBBdG9tU3Ry
aW5nJiBwcm9wZXJ0eU5hbWUpCitFeGNlcHRpb25Pcjx2b2lkPiBDU1NTdHlsZURlY2xhcmF0aW9u
OjpzZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWwoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBTdHJp
bmcgdmFsdWUpCiB7Ci0gICAgYXV0byogc2V0dGluZ3MgPSBwYXJlbnRFbGVtZW50KCkgPyAmcGFy
ZW50RWxlbWVudCgpLT5kb2N1bWVudCgpLnNldHRpbmdzKCkgOiBudWxscHRyOwotICAgIGF1dG8g
cHJvcGVydHlJbmZvID0gcHJvcGVydHlJbmZvRnJvbUphdmFTY3JpcHRDU1NQcm9wZXJ0eU5hbWUo
cHJvcGVydHlOYW1lLCBzZXR0aW5ncyk7Ci0gICAgaWYgKCFwcm9wZXJ0eUluZm8ucHJvcGVydHlJ
RCkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIGF1dG8gdmFsdWUgPSBnZXRQ
cm9wZXJ0eUNTU1ZhbHVlSW50ZXJuYWwocHJvcGVydHlJbmZvLnByb3BlcnR5SUQpOwotICAgIGlm
ICghdmFsdWUpIHsKLSAgICAgICAgLy8gSWYgdGhlIHByb3BlcnR5IGlzIGEgc2hvcnRoYW5kIHBy
b3BlcnR5IChzdWNoIGFzICJwYWRkaW5nIiksIGl0IGNhbiBvbmx5IGJlIGFjY2Vzc2VkIHVzaW5n
IGdldFByb3BlcnR5VmFsdWUuCi0gICAgICAgIHJldHVybiBWYXJpYW50PFN0cmluZywgZG91Ymxl
PiB7IGdldFByb3BlcnR5VmFsdWVJbnRlcm5hbChwcm9wZXJ0eUluZm8ucHJvcGVydHlJRCkgfTsK
LSAgICB9Ci0gICAgCi0gICAgaWYgKHByb3BlcnR5SW5mby5oYWRQaXhlbE9yUG9zUHJlZml4ICYm
IGlzPENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpKSB7Ci0gICAgICAgIC8vIENhbGwgdGhpcyB2
ZXJzaW9uIG9mIHRoZSBnZXR0ZXIgc28gdGhhdCwgZS5nLiwgcGl4ZWxUb3AgcmV0dXJucyB0b3Ag
YXMgYSBudW1iZXIKLSAgICAgICAgLy8gaW4gcGl4ZWwgdW5pdHMgYW5kIHBvc1RvcCBzaG91bGQg
ZG9lcyB0aGUgc2FtZSBfaWZfIHRoaXMgaXMgYSBwb3NpdGlvbmVkIGVsZW1lbnQuCi0gICAgICAg
IC8vIEZJWE1FOiBJZiBub3QgYSBwb3NpdGlvbmVkIGVsZW1lbnQsIE1TSUUgZG9jdW1lbnRhdGlv
biBzYXlzIHBvc1RvcCBzaG91bGQgcmV0dXJuIDA7IHRoaXMgcnVsZSBpcyBub3QgaW1wbGVtZW50
ZWQuCi0gICAgICAgIHJldHVybiBWYXJpYW50PFN0cmluZywgZG91YmxlPiB7IGRvd25jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLmZsb2F0VmFsdWUoQ1NTVW5pdFR5cGU6OkNTU19QWCkg
fTsKLSAgICB9Ci0KLSAgICByZXR1cm4gVmFyaWFudDxTdHJpbmcsIGRvdWJsZT4geyB2YWx1ZS0+
Y3NzVGV4dCgpIH07Ci19Ci0KLUV4Y2VwdGlvbk9yPHZvaWQ+IENTU1N0eWxlRGVjbGFyYXRpb246
OnNldE5hbWVkSXRlbShjb25zdCBBdG9tU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIFN0cmluZyB2YWx1
ZSwgYm9vbCYgcHJvcGVydHlTdXBwb3J0ZWQpCi17Ci0gICAgYXV0byogc2V0dGluZ3MgPSBwYXJl
bnRFbGVtZW50KCkgPyAmcGFyZW50RWxlbWVudCgpLT5kb2N1bWVudCgpLnNldHRpbmdzKCkgOiBu
dWxscHRyOwotICAgIGF1dG8gcHJvcGVydHlJbmZvID0gcHJvcGVydHlJbmZvRnJvbUphdmFTY3Jp
cHRDU1NQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lLCBzZXR0aW5ncyk7Ci0gICAgaWYgKCFwcm9w
ZXJ0eUluZm8ucHJvcGVydHlJRCkgewotICAgICAgICBwcm9wZXJ0eVN1cHBvcnRlZCA9IGZhbHNl
OwotICAgICAgICByZXR1cm4geyB9OwotICAgIH0KLQotICAgIHByb3BlcnR5U3VwcG9ydGVkID0g
dHJ1ZTsKLQotICAgIGlmIChwcm9wZXJ0eUluZm8uaGFkUGl4ZWxPclBvc1ByZWZpeCkKLSAgICAg
ICAgdmFsdWUuYXBwZW5kKCJweCIpOwotCiAgICAgYm9vbCBpbXBvcnRhbnQgPSBmYWxzZTsKICAg
ICBpZiAoRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzaG91bGRSZXNwZWN0UHJpb3JpdHlJbkNT
U0F0dHJpYnV0ZVNldHRlcnMoKSkgewogICAgICAgICBhdXRvIGltcG9ydGFudEluZGV4ID0gdmFs
dWUuZmluZElnbm9yaW5nQVNDSUlDYXNlKCIhaW1wb3J0YW50Iik7CkBAIC0zMTksMzggKzI3OSw0
MyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDU1NTdHlsZURlY2xhcmF0aW9uOjpzCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICBhdXRvIHNldFByb3BlcnR5SW50ZXJuYWxSZXN1bHQgPSBzZXRQcm9wZXJ0
eUludGVybmFsKHByb3BlcnR5SW5mby5wcm9wZXJ0eUlELCB2YWx1ZSwgaW1wb3J0YW50KTsKKyAg
ICBhdXRvIHNldFByb3BlcnR5SW50ZXJuYWxSZXN1bHQgPSBzZXRQcm9wZXJ0eUludGVybmFsKHBy
b3BlcnR5SUQsIHZhbHVlLCBpbXBvcnRhbnQpOwogICAgIGlmIChzZXRQcm9wZXJ0eUludGVybmFs
UmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gc2V0UHJvcGVydHlJbnRlcm5h
bFJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKICAgICByZXR1cm4geyB9OwogfQogCi1WZWN0
b3I8QXRvbVN0cmluZz4gQ1NTU3R5bGVEZWNsYXJhdGlvbjo6c3VwcG9ydGVkUHJvcGVydHlOYW1l
cygpIGNvbnN0CitWYXJpYW50PGRvdWJsZSwgU3RyaW5nPiBDU1NTdHlsZURlY2xhcmF0aW9uOjpn
ZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWxGb3JQb3NPclBpeGVsUHJlZml4ZWQoQ1NTUHJvcGVydHlJ
RCBwcm9wZXJ0eUlEKQogewotICAgIHN0YXRpYyB1bnNpZ25lZCBudW1OYW1lcyA9IDA7Ci0gICAg
c3RhdGljIGNvbnN0IEF0b21TdHJpbmcqIGNvbnN0IGNzc1Byb3BlcnR5TmFtZXMgPSBbXSB7Ci0g
ICAgICAgIFN0cmluZyBuYW1lc1tudW1DU1NQcm9wZXJ0aWVzXTsKLSAgICAgICAgZm9yIChpbnQg
aSA9IDA7IGkgPCBudW1DU1NQcm9wZXJ0aWVzOyArK2kpIHsKLSAgICAgICAgICAgIENTU1Byb3Bl
cnR5SUQgaWQgPSBzdGF0aWNfY2FzdDxDU1NQcm9wZXJ0eUlEPihmaXJzdENTU1Byb3BlcnR5ICsg
aSk7Ci0gICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHRha2UgYWNjb3VudCBmb3IgZmxhZ3Mg
aW4gc2V0dGluZ3MoKS4KLSAgICAgICAgICAgIGlmIChpc0VuYWJsZWRDU1NQcm9wZXJ0eShpZCkp
Ci0gICAgICAgICAgICAgICAgbmFtZXNbbnVtTmFtZXMrK10gPSBnZXRKU1Byb3BlcnR5TmFtZShp
ZCk7Ci0gICAgICAgIH0KLSAgICAgICAgc3RkOjpzb3J0KCZuYW1lc1swXSwgJm5hbWVzW251bU5h
bWVzXSwgV1RGOjpjb2RlUG9pbnRDb21wYXJlTGVzc1RoYW4pOwotICAgICAgICBhdXRvKiBpZGVu
dGlmaWVycyA9IG5ldyBBdG9tU3RyaW5nW251bU5hbWVzXTsKLSAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG51bU5hbWVzOyArK2kpCi0gICAgICAgICAgICBpZGVudGlmaWVyc1tpXSA9
IG5hbWVzW2ldOwotICAgICAgICByZXR1cm4gaWRlbnRpZmllcnM7Ci0gICAgfSgpOworICAgIGF1
dG8gdmFsdWUgPSBnZXRQcm9wZXJ0eUNTU1ZhbHVlSW50ZXJuYWwocHJvcGVydHlJRCk7CisgICAg
aWYgKCF2YWx1ZSkgeworICAgICAgICAvLyBJZiB0aGUgcHJvcGVydHkgaXMgYSBzaG9ydGhhbmQg
cHJvcGVydHkgKHN1Y2ggYXMgInBhZGRpbmciKSwgaXQgY2FuIG9ubHkgYmUgYWNjZXNzZWQgdXNp
bmcgZ2V0UHJvcGVydHlWYWx1ZS4KKyAgICAgICAgcmV0dXJuIGdldFByb3BlcnR5VmFsdWVJbnRl
cm5hbChwcm9wZXJ0eUlEKTsKKyAgICB9CisgICAgCisgICAgaWYgKGlzPENTU1ByaW1pdGl2ZVZh
bHVlPigqdmFsdWUpKSB7CisgICAgICAgIC8vIENhbGwgdGhpcyB2ZXJzaW9uIG9mIHRoZSBnZXR0
ZXIgc28gdGhhdCwgZS5nLiwgcGl4ZWxUb3AgcmV0dXJucyB0b3AgYXMgYSBudW1iZXIKKyAgICAg
ICAgLy8gaW4gcGl4ZWwgdW5pdHMgYW5kIHBvc1RvcCBzaG91bGQgZG9lcyB0aGUgc2FtZSBfaWZf
IHRoaXMgaXMgYSBwb3NpdGlvbmVkIGVsZW1lbnQuCisgICAgICAgIC8vIEZJWE1FOiBJZiBub3Qg
YSBwb3NpdGlvbmVkIGVsZW1lbnQsIE1TSUUgZG9jdW1lbnRhdGlvbiBzYXlzIHBvc1RvcCBzaG91
bGQgcmV0dXJuIDA7IHRoaXMgcnVsZSBpcyBub3QgaW1wbGVtZW50ZWQuCisgICAgICAgIHJldHVy
biBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS5mbG9hdFZhbHVlKENTU1VuaXRU
eXBlOjpDU1NfUFgpOworICAgIH0KIAotICAgIFZlY3RvcjxBdG9tU3RyaW5nPiByZXN1bHQ7Ci0g
ICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobnVtTmFtZXMpOworICAgIHJldHVybiB2
YWx1ZS0+Y3NzVGV4dCgpOworfQogCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bU5h
bWVzOyArK2kpCi0gICAgICAgIHJlc3VsdC51bmNoZWNrZWRBcHBlbmQoY3NzUHJvcGVydHlOYW1l
c1tpXSk7CitFeGNlcHRpb25Pcjx2b2lkPiBDU1NTdHlsZURlY2xhcmF0aW9uOjpzZXRQcm9wZXJ0
eVZhbHVlSW50ZXJuYWxGb3JQb3NPclBpeGVsUHJlZml4ZWQoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eUlELCBWYXJpYW50PGRvdWJsZSwgU3RyaW5nPiB2YWx1ZSkKK3sKKyAgICBhdXRvIHN0cmluZ1Zh
bHVlID0gV1RGOjpzd2l0Y2hPbih2YWx1ZSwgWyZdIChjb25zdCBhdXRvJiBpbnB1dCkgeworICAg
ICAgICByZXR1cm4gbWFrZVN0cmluZyhpbnB1dCwgInB4Iik7CisgICAgfSk7CiAKLSAgICByZXR1
cm4gcmVzdWx0OworICAgIHJldHVybiBzZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWwocHJvcGVydHlJ
RCwgV1RGTW92ZShzdHJpbmdWYWx1ZSkpOworfQorCitDU1NQcm9wZXJ0eUlEIENTU1N0eWxlRGVj
bGFyYXRpb246OmdldENTU1Byb3BlcnR5SURGcm9tSmF2YVNjcmlwdFByb3BlcnR5TmFtZShjb25z
dCBBdG9tU3RyaW5nJiBwcm9wZXJ0eU5hbWUpCit7CisgICAgcmV0dXJuIHByb3BlcnR5SW5mb0Zy
b21KYXZhU2NyaXB0Q1NTUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSwgbnVsbHB0cikucHJvcGVy
dHlJRDsKIH0KIAogU3RyaW5nIENTU1N0eWxlRGVjbGFyYXRpb246OmNzc0Zsb2F0KCkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaAkocmV2aXNpb24gMjY4NTYw
KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaAkod29ya2luZyBj
b3B5KQpAQCAtNzIsMTIgKzcyLDEyIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgQ1NTU3R5bGVT
aGVldCogcGFyZW50U3R5bGVTaGVldCgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KIAotICAg
IC8vIEJpbmRpbmdzIHN1cHBvcnQuCi0gICAgT3B0aW9uYWw8VmFyaWFudDxTdHJpbmcsIGRvdWJs
ZT4+IG5hbWVkSXRlbShjb25zdCBBdG9tU3RyaW5nJik7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0TmFtZWRJdGVtKGNvbnN0IEF0b21TdHJpbmcmIG5hbWUsIFN0cmluZyB2YWx1ZSwgYm9vbCYg
cHJvcGVydHlTdXBwb3J0ZWQpOwotICAgIFZlY3RvcjxBdG9tU3RyaW5nPiBzdXBwb3J0ZWRQcm9w
ZXJ0eU5hbWVzKCkgY29uc3Q7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0UHJvcGVydHlWYWx1
ZUludGVybmFsKENTU1Byb3BlcnR5SUQsIFN0cmluZyk7CisgICAgVmFyaWFudDxkb3VibGUsIFN0
cmluZz4gZ2V0UHJvcGVydHlWYWx1ZUludGVybmFsRm9yUG9zT3JQaXhlbFByZWZpeGVkKENTU1By
b3BlcnR5SUQpOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFByb3BlcnR5VmFsdWVJbnRlcm5h
bEZvclBvc09yUGl4ZWxQcmVmaXhlZChDU1NQcm9wZXJ0eUlELCBWYXJpYW50PGRvdWJsZSwgU3Ry
aW5nPik7CiAKICAgICBzdGF0aWMgQ1NTUHJvcGVydHlJRCBnZXRDU1NQcm9wZXJ0eUlERnJvbUph
dmFTY3JpcHRQcm9wZXJ0eU5hbWUoY29uc3QgQXRvbVN0cmluZyYpOworCiBwcm90ZWN0ZWQ6CiAg
ICAgQ1NTU3R5bGVEZWNsYXJhdGlvbigpID0gZGVmYXVsdDsKIH07CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsCShyZXZpc2lvbiAyNjg1NjApCisrKyBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NywgMjAwOSwgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgpAQCAtMTgsNDAgKzE4LDI5IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
ICAqLwogCit0eXBlZGVmIFVTVlN0cmluZyBDU1NPTVN0cmluZzsKKwogWwogICAgIEV4cG9ydE1h
Y3JvPVdFQkNPUkVfRVhQT1JULAotICAgIERlZmF1bHREZWZpbmVPd25Qcm9wZXJ0eSwKICAgICBH
ZW5lcmF0ZUlzUmVhY2hhYmxlLAogICAgIEpTQ3VzdG9tSGVhZGVyLAogICAgIEpTQ3VzdG9tTWFy
a0Z1bmN0aW9uLAogICAgIFNraXBWVGFibGVWYWxpZGF0aW9uLAogICAgIEV4cG9zZWQ9V2luZG93
CiBdIGludGVyZmFjZSBDU1NTdHlsZURlY2xhcmF0aW9uIHsKLSAgICBbQ0VSZWFjdGlvbnNdIGF0
dHJpYnV0ZSBET01TdHJpbmcgY3NzVGV4dDsKLQotICAgIERPTVN0cmluZyBnZXRQcm9wZXJ0eVZh
bHVlKERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwotCi0gICAgW0NFUmVhY3Rpb25zLCBNYXlUaHJv
d0V4Y2VwdGlvbl0gRE9NU3RyaW5nIHJlbW92ZVByb3BlcnR5KERPTVN0cmluZyBwcm9wZXJ0eU5h
bWUpOwotICAgIERPTVN0cmluZz8gZ2V0UHJvcGVydHlQcmlvcml0eShET01TdHJpbmcgcHJvcGVy
dHlOYW1lKTsKLQotICAgIFtDRVJlYWN0aW9ucywgTWF5VGhyb3dFeGNlcHRpb25dIHVuZGVmaW5l
ZCBzZXRQcm9wZXJ0eShET01TdHJpbmcgcHJvcGVydHlOYW1lLCBbTGVnYWN5TnVsbFRvRW1wdHlT
dHJpbmddIERPTVN0cmluZyB2YWx1ZSwgb3B0aW9uYWwgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5n
XSBET01TdHJpbmcgcHJpb3JpdHkgPSAiIik7Ci0KKyAgICBbQ0VSZWFjdGlvbnNdIGF0dHJpYnV0
ZSBDU1NPTVN0cmluZyBjc3NUZXh0OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIGxlbmd0aDsKLSAgICBnZXR0ZXIgRE9NU3RyaW5nIGl0ZW0odW5zaWduZWQgbG9uZyBpbmRl
eCk7CisgICAgZ2V0dGVyIENTU09NU3RyaW5nIGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7Cisg
ICAgQ1NTT01TdHJpbmcgZ2V0UHJvcGVydHlWYWx1ZShDU1NPTVN0cmluZyBwcm9wZXJ0eSk7Cisg
ICAgLy8gRklYTUU6IFRoZSByZXR1cm4gdmFsdWUgb2YgJ2dldFByb3BlcnR5UHJpb3JpdHknIHNo
b3VsZCBub3QgYmUgbnVsbGFibGUuCisgICAgQ1NTT01TdHJpbmc/IGdldFByb3BlcnR5UHJpb3Jp
dHkoQ1NTT01TdHJpbmcgcHJvcGVydHkpOworICAgIFtDRVJlYWN0aW9ucywgTWF5VGhyb3dFeGNl
cHRpb25dIHVuZGVmaW5lZCBzZXRQcm9wZXJ0eShDU1NPTVN0cmluZyBwcm9wZXJ0eSwgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyB2YWx1ZSwgb3B0aW9uYWwgW0xlZ2FjeU51
bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBwcmlvcml0eSA9ICIiKTsKKyAgICBbQ0VSZWFj
dGlvbnMsIE1heVRocm93RXhjZXB0aW9uXSBDU1NPTVN0cmluZyByZW1vdmVQcm9wZXJ0eShDU1NP
TVN0cmluZyBwcm9wZXJ0eSk7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1J1bGU/IHBhcmVu
dFJ1bGU7CisgICAgW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nXSBDU1NPTVN0cmluZyBjc3NGbG9hdDsKIAotICAgIFtDRVJlYWN0aW9uc10gYXR0cmlidXRl
IFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gRE9NU3RyaW5nIGNzc0Zsb2F0OwotCisgICAgLy8g
Tm9uLXN0YW5kYXJkLgogICAgIERPTVN0cmluZz8gZ2V0UHJvcGVydHlTaG9ydGhhbmQob3B0aW9u
YWwgRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7CiAgICAgYm9vbGVhbiBpc1Byb3BlcnR5SW1wbGlj
aXQob3B0aW9uYWwgRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7Ci0KLSAgICAvLyBVc2UgbmFtZWQg
Z2V0dGVycy9zZXR0ZXJzIGZvciBhbGwgc3VwcG9ydCBDU1MgcHJvcGVydHkgbmFtZXMuIFRoZSBz
cGVjIHNheXMKLSAgICAvLyB0aGVzZSBzaG91bGQgYmUgbm9ybWFsIGF0dHJpYnV0ZXMsIGJ1dCB0
aGVyZSBhcmUgdG9vIG1hbnkgY29tYmluYXRpb25zIHdpdGgKLSAgICAvLyBwcmVmaXhlcyBmb3Ig
dGhpcyB0byBiZSBwcmFjdGljYWwuIElmIHdlIHJlbW92ZSBsZWdhY3kgYWxpYXNlcywgd2Ugc2hv
dWxkCi0gICAgLy8gcmVjb25zaWRlciB0aGlzIGRlY2lzaW9uLgotICAgIGdldHRlciAoRE9NU3Ry
aW5nIG9yIGRvdWJsZSkgKERPTVN0cmluZyBuYW1lKTsKLSAgICBbQ0VSZWFjdGlvbnMsIENhbGxO
YW1lZFNldHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9wZXJ0aWVzXSBzZXR0ZXIgdW5kZWZpbmVkIChE
T01TdHJpbmcgbmFtZSwgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBET01TdHJpbmcgdmFsdWUp
OwotCi0gICAgLy8gVGhpcyBtZXRob2QgaXMgZGVwcmVjYXRlZCwgYW5kIHdlIHdvdWxkIGxpa2Ug
dG8gZHJvcCBzdXBwb3J0IGZvciBpdCBzb21lZGF5CiAgICAgRGVwcmVjYXRlZENTU09NVmFsdWU/
IGdldFByb3BlcnR5Q1NTVmFsdWUoRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7CiB9OwpJbmRleDog
U291cmNlL1dlYkNvcmUvY3NzL21ha2Vwcm9wLnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9tYWtlcHJvcC5wbAkocmV2aXNpb24gMjY4NTYwKQorKysgU291cmNlL1dlYkNvcmUv
Y3NzL21ha2Vwcm9wLnBsCSh3b3JraW5nIGNvcHkpCkBAIC0xMzU4LDMgKzEzNTgsMTc1IEBAIGlm
IChub3QgJGdwZXJmKSB7CiAgICAgJGdwZXJmID0gJEVOVntHUEVSRn0gPyAkRU5We0dQRVJGfSA6
ICJncGVyZiI7CiB9CiBzeXN0ZW0oIlwiJGdwZXJmXCIgLS1rZXktcG9zaXRpb25zPVwiKlwiIC1E
IC1uIC1zIDIgQ1NTUHJvcGVydHlOYW1lcy5ncGVyZiAtLW91dHB1dC1maWxlPUNTU1Byb3BlcnR5
TmFtZXMuY3BwIikgPT0gMCB8fCBkaWUgImNhbGxpbmcgZ3BlcmYgZmFpbGVkOiAkPyI7CisKKwor
IyBHZW5lcmF0ZSBDU1NTdHlsZURlY2xhcmF0aW9uK1Byb3BlcnR5TmFtZXMuaWRsCisKKyMgaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLyNjc3MtcHJvcGVydHktdG8taWRsLWF0dHJpYnV0
ZQorc3ViIGNzc1Byb3BlcnR5VG9JRExBdHRyaWJ1dGUoJCQkKQoreworICAgIG15ICRwcm9wZXJ0
eSA9IHNoaWZ0OworICAgIG15ICRsb3dlcmNhc2VGaXJzdCA9IHNoaWZ0OworICAgIG15ICR1cHBl
cmNhc2VGaXJzdCA9IHNoaWZ0OworCisgICAgbXkgJG91dHB1dCA9ICIiOworICAgIG15ICR1cHBl
cmNhc2VOZXh0ID0gJHVwcGVyY2FzZUZpcnN0OworCisgICAgaWYgKCRsb3dlcmNhc2VGaXJzdCkg
eworICAgICAgICAkcHJvcGVydHkgPSBzdWJzdHIoJHByb3BlcnR5LCAxKTsKKyAgICB9CisKKyAg
ICBmb3JlYWNoIG15ICRjaGFyYWN0ZXIgKHNwbGl0IC8vLCAkcHJvcGVydHkpIHsKKyAgICAgICAg
aWYgKCRjaGFyYWN0ZXIgZXEgIi0iKSB7CisgICAgICAgICAgICAkdXBwZXJjYXNlTmV4dCA9IDE7
CisgICAgICAgIH0gZWxzaWYgKCR1cHBlcmNhc2VOZXh0KSB7CisgICAgICAgICAgICAkdXBwZXJj
YXNlTmV4dCA9IDA7CisgICAgICAgICAgICAkb3V0cHV0IC49IHVjICRjaGFyYWN0ZXI7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkb3V0cHV0IC49ICRjaGFyYWN0ZXI7CisgICAgICAg
IH0KKyAgICB9CisgICAgCisgICAgcmV0dXJuICRvdXRwdXQ7Cit9CisKK215ICVuYW1lc0FuZEFs
aWFzZXNUb05hbWU7Citmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKKyAgICBpZiAoZ3JlcCB7
ICRfIGVxICRuYW1lIH0gQGludGVybmFsUHJvcHJlcnRpZXMpIHsKKyAgICAgICAgbmV4dDsKKyAg
ICB9CisgICAgJG5hbWVzQW5kQWxpYXNlc1RvTmFtZXskbmFtZX0gPSAkbmFtZTsKKyAgICBmb3Ig
bXkgJGFsaWFzIChAeyRuYW1lVG9BbGlhc2VzeyRuYW1lfX0pIHsKKyAgICAgICAgJG5hbWVzQW5k
QWxpYXNlc1RvTmFtZXskYWxpYXN9ID0gJG5hbWU7CisgICAgfQorfQorbXkgQG5hbWVzQW5kQWxp
YXNlcyA9IHNvcnQga2V5cyglbmFtZXNBbmRBbGlhc2VzVG9OYW1lKTsKKworb3BlbiBDU1NfU1RZ
TEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMLCAiPiIsICJDU1NTdHlsZURlY2xhcmF0
aW9uK1Byb3BlcnR5TmFtZXMuaWRsIiBvciBkaWUgIkNvdWxkIG5vdCBvcGVuIENTU1N0eWxlRGVj
bGFyYXRpb24rUHJvcGVydHlOYW1lcy5pZGwgZm9yIHdyaXRpbmdcbiI7CitwcmludCBDU1NfU1RZ
TEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMIDw8ICJFT0YiOworLy8gVGhpcyBmaWxl
IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gJGlucHV0RmlsZSBieSB0aGUgbWFrZXBy
b3AucGwgc2NyaXB0LiBEbyBub3QgZWRpdCBpdC4KKwordHlwZWRlZiBVU1ZTdHJpbmcgQ1NTT01T
dHJpbmc7CisKK3BhcnRpYWwgaW50ZXJmYWNlIENTU1N0eWxlRGVjbGFyYXRpb24geworRU9GCisg
CitwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVSVFlfTkFNRVNfSURMIDw8ICJFT0Yi
OworICAgIC8vIEZvciBlYWNoIENTUyBwcm9wZXJ0eSBwcm9wZXJ0eSB0aGF0IGlzIGEgc3VwcG9y
dGVkIENTUyBwcm9wZXJ0eSwgdGhlIGZvbGxvd2luZworICAgIC8vIHBhcnRpYWwgaW50ZXJmYWNl
IGFwcGxpZXMgd2hlcmUgY2FtZWwtY2FzZWQgYXR0cmlidXRlIGlzIG9idGFpbmVkIGJ5IHJ1bm5p
bmcgdGhlCisgICAgLy8gQ1NTIHByb3BlcnR5IHRvIElETCBhdHRyaWJ1dGUgYWxnb3JpdGhtIGZv
ciBwcm9wZXJ0eS4KKyAgICAvLyBFeGFtcGxlOiBmb250LXNpemUgLT4gZWxlbWVudC5zdHlsZS5m
b250U2l6ZQorICAgIC8vIEV4YW1wbGU6IC13ZWJraXQtdHJhbnNmb3JtIC0+IGVsZW1lbnQuc3R5
bGUuV2Via2l0VHJhbnNmb3JtCisgICAgLy8gW0NFUmVhY3Rpb25zXSBhdHRyaWJ1dGUgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBfY2FtZWxfY2FzZWRfYXR0cmlidXRlOwor
RU9GCisKK2ZvcmVhY2ggbXkgJG5hbWVPckFsaWFzIChAbmFtZXNBbmRBbGlhc2VzKSB7CisgICAg
bXkgJGNhbWVsQ2FzZWRBdHRyaWJ1dGVOYW1lID0gY3NzUHJvcGVydHlUb0lETEF0dHJpYnV0ZSgk
bmFtZU9yQWxpYXMsIDAsIDApOworICAgIG15ICRuYW1lID0gJG5hbWVzQW5kQWxpYXNlc1RvTmFt
ZXskbmFtZU9yQWxpYXN9OworICAgIG15ICRwcm9wZXJ0eUlkID0gJG5hbWVUb0lkeyRuYW1lc0Fu
ZEFsaWFzZXNUb05hbWV7JG5hbWV9fTsKKyAgICAKKyAgICBteSBAZXh0ZW5kZWRBdHRyaWJ1dGVW
YWx1ZXMgPSAoIkNTU1Byb3BlcnR5PSR7cHJvcGVydHlJZH0iKTsKKyAgICBwdXNoKEBleHRlbmRl
ZEF0dHJpYnV0ZVZhbHVlcywgIkVuYWJsZWRCeVNldHRpbmc9JHtzZXR0aW5nc0ZsYWdzeyRuYW1l
fX0iKSBpZiAkc2V0dGluZ3NGbGFnc3skbmFtZX07CisgICAgcHVzaChAZXh0ZW5kZWRBdHRyaWJ1
dGVWYWx1ZXMsICJFbmFibGVkQXRSdW50aW1lPSR7cnVudGltZUZsYWdzeyRuYW1lfX0iKSBpZiAk
cnVudGltZUZsYWdzeyRuYW1lfTsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVzID0gam9pbigi
LCAiLCBAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMpOworCisgICAgcHJpbnQgQ1NTX1NUWUxFX0RF
Q0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgJHtleHRlbmRl
ZEF0dHJpYnV0ZXN9XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0
cmluZyAke2NhbWVsQ2FzZWRBdHRyaWJ1dGVOYW1lfTtcbiI7Cit9CisKK3ByaW50IENTU19TVFlM
RV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgPDwgIkVPRiI7CisKKyAgICAvLyBGb3Ig
ZWFjaCBDU1MgcHJvcGVydHkgcHJvcGVydHkgdGhhdCBpcyBhIHN1cHBvcnRlZCBDU1MgcHJvcGVy
dHkgYW5kIHRoYXQgYmVnaW5zCisgICAgLy8gd2l0aCB0aGUgc3RyaW5nIC13ZWJraXQtLCB0aGUg
Zm9sbG93aW5nIHBhcnRpYWwgaW50ZXJmYWNlIGFwcGxpZXMgd2hlcmUgd2Via2l0LWNhc2VkCisg
ICAgLy8gYXR0cmlidXRlIGlzIG9idGFpbmVkIGJ5IHJ1bm5pbmcgdGhlIENTUyBwcm9wZXJ0eSB0
byBJREwgYXR0cmlidXRlIGFsZ29yaXRobSBmb3IKKyAgICAvLyBwcm9wZXJ0eSwgd2l0aCB0aGUg
bG93ZXJjYXNlIGZpcnN0IGZsYWcgc2V0LgorICAgIC8vIEV4YW1wbGU6IC13ZWJraXQtdHJhbnNm
b3JtIC0+IGVsZW1lbnQuc3R5bGUud2Via2l0VHJhbnNmb3JtCisgICAgLy8gW0NFUmVhY3Rpb25z
XSBhdHRyaWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBfd2Via2l0
X2Nhc2VkX2F0dHJpYnV0ZTsKK0VPRgorCitmb3JlYWNoIG15ICRuYW1lT3JBbGlhcyAoZ3JlcCB7
ICRfID1+IC9eXC13ZWJraXRcLS8gfSBAbmFtZXNBbmRBbGlhc2VzKSB7CisgICAgbXkgJHdlYmtp
dENhc2VkQXR0cmlidXRlTmFtZSA9IGNzc1Byb3BlcnR5VG9JRExBdHRyaWJ1dGUoJG5hbWVPckFs
aWFzLCAxLCAwKTsKKyAgICBteSAkbmFtZSA9ICRuYW1lc0FuZEFsaWFzZXNUb05hbWV7JG5hbWVP
ckFsaWFzfTsKKyAgICBteSAkcHJvcGVydHlJZCA9ICRuYW1lVG9JZHskbmFtZXNBbmRBbGlhc2Vz
VG9OYW1leyRuYW1lfX07CisgICAgCisgICAgbXkgQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzID0g
KCJDU1NQcm9wZXJ0eT0ke3Byb3BlcnR5SWR9Iik7CisgICAgcHVzaChAZXh0ZW5kZWRBdHRyaWJ1
dGVWYWx1ZXMsICJFbmFibGVkQnlTZXR0aW5nPSR7c2V0dGluZ3NGbGFnc3skbmFtZX19IikgaWYg
JHNldHRpbmdzRmxhZ3N7JG5hbWV9OworICAgIHB1c2goQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVz
LCAiRW5hYmxlZEF0UnVudGltZT0ke3J1bnRpbWVGbGFnc3skbmFtZX19IikgaWYgJHJ1bnRpbWVG
bGFnc3skbmFtZX07CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlcyA9IGpvaW4oIiwgIiwgQGV4
dGVuZGVkQXR0cmlidXRlVmFsdWVzKTsKKworICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElP
Tl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1
dGVzfV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgJHt3
ZWJraXRDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIjsKK30KKworcHJpbnQgQ1NTX1NUWUxFX0RFQ0xB
UkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsKKworICAgIC8vIEZvciBlYWNoIENT
UyBwcm9wZXJ0eSBwcm9wZXJ0eSB0aGF0IGlzIGEgc3VwcG9ydGVkIENTUyBwcm9wZXJ0eSwgZXhj
ZXB0IGZvcgorICAgIC8vIHByb3BlcnRpZXMgdGhhdCBoYXZlIG5vICItIiAoVSswMDJEKSBpbiB0
aGUgcHJvcGVydHkgbmFtZSwgdGhlIGZvbGxvd2luZyBwYXJ0aWFsCisgICAgLy8gaW50ZXJmYWNl
IGFwcGxpZXMgd2hlcmUgZGFzaGVkIGF0dHJpYnV0ZSBpcyBwcm9wZXJ0eS4KKyAgICAvLyBFeGFt
cGxlOiBmb250LXNpemUgLT4gZWxlbWVudC5zdHlsZVsnZm9udC1zaXplJ10KKyAgICAvLyBFeGFt
cGxlOiAtd2Via2l0LXRyYW5zZm9ybSAtPiBlbGVtZW50LnN0eWxlLlsnLXdlYmtpdC10cmFuc2Zv
cm0nXQorICAgIC8vIFtDRVJlYWN0aW9uc10gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9FbXB0eVN0
cmluZ10gQ1NTT01TdHJpbmcgX2Rhc2hlZF9hdHRyaWJ1dGU7CitFT0YKK2ZvcmVhY2ggbXkgJG5h
bWVPckFsaWFzIChncmVwIHsgJF8gPX4gL1wtLyB9IEBuYW1lc0FuZEFsaWFzZXMpIHsKKyAgICBt
eSAkZGFzaGVkQXR0cmlidXRlTmFtZSA9ICRuYW1lT3JBbGlhczsKKyAgICBteSAkbmFtZSA9ICRu
YW1lc0FuZEFsaWFzZXNUb05hbWV7JG5hbWVPckFsaWFzfTsKKyAgICBteSAkcHJvcGVydHlJZCA9
ICRuYW1lVG9JZHskbmFtZXNBbmRBbGlhc2VzVG9OYW1leyRuYW1lfX07CisgICAgCisgICAgbXkg
QGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzID0gKCJDU1NQcm9wZXJ0eT0ke3Byb3BlcnR5SWR9Iik7
CisgICAgcHVzaChAZXh0ZW5kZWRBdHRyaWJ1dGVWYWx1ZXMsICJFbmFibGVkQnlTZXR0aW5nPSR7
c2V0dGluZ3NGbGFnc3skbmFtZX19IikgaWYgJHNldHRpbmdzRmxhZ3N7JG5hbWV9OworICAgIHB1
c2goQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzLCAiRW5hYmxlZEF0UnVudGltZT0ke3J1bnRpbWVG
bGFnc3skbmFtZX19IikgaWYgJHJ1bnRpbWVGbGFnc3skbmFtZX07CisgICAgbXkgJGV4dGVuZGVk
QXR0cmlidXRlcyA9IGpvaW4oIiwgIiwgQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVzKTsKKworICAg
IHByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VS
ZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIFtMZWdhY3lOdWxsVG9F
bXB0eVN0cmluZ10gQ1NTT01TdHJpbmcgJHtkYXNoZWRBdHRyaWJ1dGVOYW1lfTtcbiI7Cit9CisK
KyMgRXZlcnl0aGluZyBiZWxvdyBoZXJlIGlzIG5vbi1zdGFuZGFyZC4KKworcHJpbnQgQ1NTX1NU
WUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsKKworICAgIC8vIE5v
bi1zdGFuZGFyZC4gU3BlY2lhbCBjYXNlIHByb3BlcnRpZXMgc3RhcnRpbmcgd2l0aCAtZXB1Yi0g
bGlrZSBpcyBkb25lIGZvcgorICAgIC8vIC13ZWJraXQtLCB3aGVyZSBhdHRyaWJ1dGUgaXMgb2J0
YWluZWQgYnkgcnVubmluZyB0aGUgQ1NTIHByb3BlcnR5IHRvIElETCBhdHRyaWJ1dGUKKyAgICAv
LyBhbGdvcml0aG0gZm9yIHByb3BlcnR5LCB3aXRoIHRoZSBsb3dlcmNhc2UgZmlyc3QgZmxhZyBz
ZXQuCisgICAgLy8gRXhhbXBsZTogLWVwdWItY2FwdGlvbi1zaWRlIC0+IGVsZW1lbnQuc3R5bGUu
ZXB1YkNhcHRpb25TaWRlCitFT0YKK2ZvcmVhY2ggbXkgJG5hbWVPckFsaWFzIChncmVwIHsgJF8g
PX4gL15cLWVwdWJcLS8gfSBAbmFtZXNBbmRBbGlhc2VzKSB7CisgICAgbXkgJGVwdWJDYXNlZEF0
dHJpYnV0ZU5hbWUgPSBjc3NQcm9wZXJ0eVRvSURMQXR0cmlidXRlKCRuYW1lT3JBbGlhcywgMSwg
MCk7CisgICAgbXkgJG5hbWUgPSAkbmFtZXNBbmRBbGlhc2VzVG9OYW1leyRuYW1lT3JBbGlhc307
CisgICAgbXkgJHByb3BlcnR5SWQgPSAkbmFtZVRvSWR7JG5hbWVzQW5kQWxpYXNlc1RvTmFtZXsk
bmFtZX19OworICAgIAorICAgIG15IEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcyA9ICgiQ1NTUHJv
cGVydHk9JHtwcm9wZXJ0eUlkfSIpOworICAgIHB1c2goQGV4dGVuZGVkQXR0cmlidXRlVmFsdWVz
LCAiRW5hYmxlZEJ5U2V0dGluZz0ke3NldHRpbmdzRmxhZ3N7JG5hbWV9fSIpIGlmICRzZXR0aW5n
c0ZsYWdzeyRuYW1lfTsKKyAgICBwdXNoKEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcywgIkVuYWJs
ZWRBdFJ1bnRpbWU9JHtydW50aW1lRmxhZ3N7JG5hbWV9fSIpIGlmICRydW50aW1lRmxhZ3N7JG5h
bWV9OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZXMgPSBqb2luKCIsICIsIEBleHRlbmRlZEF0
dHJpYnV0ZVZhbHVlcyk7CisKKyAgICBwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJPUEVS
VFlfTkFNRVNfSURMICIgICAgW0NFUmVhY3Rpb25zLCAke2V4dGVuZGVkQXR0cmlidXRlc31dIGF0
dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nICR7ZXB1YkNhc2Vk
QXR0cmlidXRlTmFtZX07XG4iOworfQorCitwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05fUFJP
UEVSVFlfTkFNRVNfSURMIDw8ICJFT0YiOworCisgICAgLy8gTm9uLXN0YW5kYXJkLiBBZGQgc3Bl
Y2lhbCBjYXNlcyBmb3IgYWxsIHByb3BlcnRpZXMgbm90IHN0YXJ0aW5nIHdpdGggLXdlYmtpdC0g
b3IgLWVwdWItCisgICAgLy8gdGhhdCBwdXRzIGFuIG5ldyBwcmVmaXggb2YgY3NzLCBDc3MsIHBv
cywgUG9zLCBwaXhlbCBhbmQgUGl4ZWwgb24gZWFjaC4KKyAgICAvLyBFeGFtcGxlIHRvcCAtPiBl
bGVtZW50LnN0eWxlLnBvc1RvcAorICAgIC8vIEV4YW1wbGUgdG9wIC0+IGVsZW1lbnQuc3R5bGUu
UGl4ZWxUb3AKK0VPRgorZm9yZWFjaCBteSAkbmFtZU9yQWxpYXMgKGdyZXAgeyAkXyAhfiAvXlwt
d2Via2l0XC18XlwtZXB1YlwtLyB9IEBuYW1lc0FuZEFsaWFzZXMpIHsKKyAgICBteSAkY2FtZWxD
YXNlZEF0dHJpYnV0ZU5hbWUgPSBjc3NQcm9wZXJ0eVRvSURMQXR0cmlidXRlKCRuYW1lT3JBbGlh
cywgMCwgMSk7CisgICAgbXkgJG5hbWUgPSAkbmFtZXNBbmRBbGlhc2VzVG9OYW1leyRuYW1lT3JB
bGlhc307CisgICAgbXkgJHByb3BlcnR5SWQgPSAkbmFtZVRvSWR7JG5hbWVzQW5kQWxpYXNlc1Rv
TmFtZXskbmFtZX19OworICAgIAorICAgIG15IEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcyA9ICgi
Q1NTUHJvcGVydHk9JHtwcm9wZXJ0eUlkfSIpOworICAgIHB1c2goQGV4dGVuZGVkQXR0cmlidXRl
VmFsdWVzLCAiRW5hYmxlZEJ5U2V0dGluZz0ke3NldHRpbmdzRmxhZ3N7JG5hbWV9fSIpIGlmICRz
ZXR0aW5nc0ZsYWdzeyRuYW1lfTsKKyAgICBwdXNoKEBleHRlbmRlZEF0dHJpYnV0ZVZhbHVlcywg
IkVuYWJsZWRBdFJ1bnRpbWU9JHtydW50aW1lRmxhZ3N7JG5hbWV9fSIpIGlmICRydW50aW1lRmxh
Z3N7JG5hbWV9OworICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZXMgPSBqb2luKCIsICIsIEBleHRl
bmRlZEF0dHJpYnV0ZVZhbHVlcyk7CisKKyAgICBwcmludCBDU1NfU1RZTEVfREVDTEFSQVRJT05f
UFJPUEVSVFlfTkFNRVNfSURMICIgICAgW0NFUmVhY3Rpb25zLCAke2V4dGVuZGVkQXR0cmlidXRl
c31dIGF0dHJpYnV0ZSBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nIGNzcyR7
Y2FtZWxDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIiB1bmxlc3MgJGNhbWVsQ2FzZWRBdHRyaWJ1dGVO
YW1lIGVxICJGbG9hdCI7CisgICAgcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZ
X05BTUVTX0lETCAiICAgIFtDRVJlYWN0aW9ucywgJHtleHRlbmRlZEF0dHJpYnV0ZXN9XSBhdHRy
aWJ1dGUgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZyBDc3Mke2NhbWVsQ2Fz
ZWRBdHRyaWJ1dGVOYW1lfTtcbiIgdW5sZXNzICRjYW1lbENhc2VkQXR0cmlidXRlTmFtZSBlcSAi
RmxvYXQiOworICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19J
REwgIiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIChk
b3VibGUgb3IgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZykgcG9zJHtjYW1l
bENhc2VkQXR0cmlidXRlTmFtZX07XG4iOworICAgIHByaW50IENTU19TVFlMRV9ERUNMQVJBVElP
Tl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMsICR7ZXh0ZW5kZWRBdHRyaWJ1
dGVzfV0gYXR0cmlidXRlIChkb3VibGUgb3IgW0xlZ2FjeU51bGxUb0VtcHR5U3RyaW5nXSBDU1NP
TVN0cmluZykgUG9zJHtjYW1lbENhc2VkQXR0cmlidXRlTmFtZX07XG4iOworICAgIHByaW50IENT
U19TVFlMRV9ERUNMQVJBVElPTl9QUk9QRVJUWV9OQU1FU19JREwgIiAgICBbQ0VSZWFjdGlvbnMs
ICR7ZXh0ZW5kZWRBdHRyaWJ1dGVzfV0gYXR0cmlidXRlIChkb3VibGUgb3IgW0xlZ2FjeU51bGxU
b0VtcHR5U3RyaW5nXSBDU1NPTVN0cmluZykgcGl4ZWwke2NhbWVsQ2FzZWRBdHRyaWJ1dGVOYW1l
fTtcbiI7CisgICAgcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lE
TCAiICAgIFtDRVJlYWN0aW9ucywgJHtleHRlbmRlZEF0dHJpYnV0ZXN9XSBhdHRyaWJ1dGUgKGRv
dWJsZSBvciBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIENTU09NU3RyaW5nKSBQaXhlbCR7Y2Ft
ZWxDYXNlZEF0dHJpYnV0ZU5hbWV9O1xuIjsKK30KKworcHJpbnQgQ1NTX1NUWUxFX0RFQ0xBUkFU
SU9OX1BST1BFUlRZX05BTUVTX0lETCA8PCAiRU9GIjsKK307CitFT0YKKworY2xvc2UgQ1NTX1NU
WUxFX0RFQ0xBUkFUSU9OX1BST1BFUlRZX05BTUVTX0lETDsKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2
ODU2MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDI5IEBACisyMDIwLTEwLTE1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAg
ICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIGJyZWFrcyBKUyBzcGVjIChwcm9wZXJ0aWVzIG5vdCBz
aG93aW5nIHVwIGluIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NjIzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9zdHlsZS1lbnVtZXJhdGUt
cHJvcGVydGllcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3Mvc3R5bGUtZW51bWVy
YXRlLXByb3BlcnRpZXMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9kb21MaXN0RW51bWVyYXRp
b24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL2RvbUxpc3RFbnVtZXJhdGlvbi5o
dG1sOgorICAgICAgICBSZW1vdmUgdGVzdHMgZm9yIGl0ZXJhdGlvbiBvcmRlciwgd2hpY2ggaXMg
bm90IHN0YW5kYXJkaXplZCwgYW5kIG5vdCBjb25zaXN0ZW50IGFtb25nCisgICAgICAgIGJyb3dz
ZXJzLgorCisgICAgICAgICogZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3NzdHlsZWRl
Y2xhcmF0aW9uLXByb3BlcnRpZXMtZGVzY3JpcHRvci1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3NzdHlsZWRlY2xhcmF0aW9uLXByb3BlcnRp
ZXMtZGVzY3JpcHRvci5odG1sOgorICAgICAgICBVcGRhdGUgbm93IHRoYXQgdGhlIHByb3BlcnRp
ZXMgYXJlIHByb3BlciBhdHRyaWJ1dGVzIG9uIHRoZSBwcm90b3R5cGUuCisKKyAgICAgICAgKiBq
cy9kb20vcHV0LW92ZXJyaWRlLXNob3VsZC1ub3QtdXNlLWljLmh0bWw6CisgICAgICAgIFN3aXRj
aCB0byB1c2luZyBhIERPTVN0cmluZ0xpc3QgYXMgdGhlIG9iamVjdCB0aGF0IG92ZXJyaWRlcyBw
dXQsIHNpbmNlIENTU1N0eWxlRGVjbGFyYXRpb24gbm8gbG9uZ2VyIGRvZXMuCisKKyAgICAgICAg
KiB0cmFuc2l0aW9ucy90cmFuc2l0aW9ucy1wYXJzaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB0cmFuc2l0aW9ucy90cmFuc2l0aW9ucy1wYXJzaW5nLmh0bWw6CisgICAgICAgIFJlbW92ZSBP
YmplY3Qua2V5cygpIGFzcGVjdCBvZiB0aGUgdGVzdCwgd2hpY2ggaXMgbm8gbG9uZ2VyIG1lYW5p
bmdmdWwgc2luY2UgdGhlCisgICAgICAgIHByb3BlcnRpZXMgc2hvdWxkIG5vIGxvbmdlciBleGlz
dCBpbiB0aGUgcmVzdWx0IHNldC4KKwogMjAyMC0xMC0xNSAgVHJ1aXR0IFNhdmVsbCAgPHRzYXZl
bGxAYXBwbGUuY29tPgogCiAgICAgICAgIFJlYmFzZWxpbmUgdGVzdHMgZm9yIENhdGFsaW5hIGFu
ZCBpT1MgYWZ0ZXIgdGhlIGNoYW5nZXMgaW4gcjI2ODUyMApJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9jc3Mvc3R5bGUtZW51bWVyYXRlLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLWVudW1lcmF0ZS1wcm9wZXJ0aWVzLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMjY4NTYwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUt
ZW51bWVyYXRlLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3
ICsxMSw2IEBAIFBBU1MgJ1dlYmtpdFRyYW5zZm9ybScgaW4gZG9jdW1lbnQuYm9keS4KIFBBU1Mg
J2JvZ3VzLXJhbmRvbS1TdHJpbmcnIGluIGRvY3VtZW50LmJvZHkuc3R5bGUgaXMgZmFsc2UKIFBB
U1MgJ2Nzc1RleHQnIGluIGRvY3VtZW50LmJvZHkuc3R5bGUgaXMgdHJ1ZQogUEFTUyAnZ2V0UHJv
cGVydHlDU1NWYWx1ZScgaW4gZG9jdW1lbnQuYm9keS5zdHlsZSBpcyB0cnVlCi1QQVNTIFRoZSBD
U1MgcHJvcGVydHkgb3JkZXIgaXMgY29ycmVjdAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1l
bnVtZXJhdGUtcHJvcGVydGllcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Y3NzL3N0eWxlLWVudW1lcmF0ZS1wcm9wZXJ0aWVzLmh0bWwJKHJldmlzaW9uIDI2ODU2MCkKKysr
IExheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLWVudW1lcmF0ZS1wcm9wZXJ0aWVzLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTIzLDMzICsyMyw2IEBACiAgICAgICAgIHNob3VsZEJlRmFsc2UoIidi
b2d1cy1yYW5kb20tU3RyaW5nJyBpbiBkb2N1bWVudC5ib2R5LnN0eWxlIik7CiAgICAgICAgIHNo
b3VsZEJlVHJ1ZSgiJ2Nzc1RleHQnIGluIGRvY3VtZW50LmJvZHkuc3R5bGUiKTsKICAgICAgICAg
c2hvdWxkQmVUcnVlKCInZ2V0UHJvcGVydHlDU1NWYWx1ZScgaW4gZG9jdW1lbnQuYm9keS5zdHls
ZSIpOwotCi0gICAgICAgIC8vIFRlc3QgQ1NTIHByb3BlcnR5IG9yZGVyLgotICAgICAgICB2YXIg
c3RhcnRlZDsKLSAgICAgICAgdmFyIGNzc1Byb3BlcnR5Q291bnQgPSAwOwotICAgICAgICB2YXIg
cHJldmlvdXM7Ci0gICAgICAgIHZhciBzZWVuRmlsdGVyOwotICAgICAgICBmb3IgKHZhciBwIGlu
IGRvY3VtZW50LmJvZHkuc3R5bGUpIHsKLSAgICAgICAgICAgIGlmIChwID09PSAiYWxpZ25tZW50
QmFzZWxpbmUiKQotICAgICAgICAgICAgICAgIHN0YXJ0ZWQgPSB0cnVlOwotICAgICAgICAgICAg
aWYgKCFzdGFydGVkKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgaWYg
KHAgPT09ICJmaWx0ZXIiKQotICAgICAgICAgICAgICAgIHNlZW5GaWx0ZXIgPSB0cnVlOwotICAg
ICAgICAgICAgaWYgKHByZXZpb3VzICYmIHByZXZpb3VzID49IHApIHsKLSAgICAgICAgICAgICAg
ICB0ZXN0RmFpbGVkKCJJbnZhbGlkIENTUy1tYXBwZWQgcHJvcGVydHkgb3JkZXI6ICciICsgcCAr
ICInIGFmdGVyICciICsgcHJldmlvdXMgKyAiJyIpOwotICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCsrY3NzUHJvcGVydHlDb3VudCA8PSA0MDAp
Ci0gICAgICAgICAgICAgICAgcHJldmlvdXMgPSBwOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKHNlZW5GaWx0ZXIpCi0gICAgICAgICAgICAgICAgICAgIHRlc3RQYXNz
ZWQoIlRoZSBDU1MgcHJvcGVydHkgb3JkZXIgaXMgY29ycmVjdCIpOwotICAgICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiVGhlICdmaWx0ZXInIHByb3Bl
cnR5IHdhcyBub3QgZW51bWVyYXRlZCIpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgfQotICAgICAgICB9CiAgICAgPC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vZG9tTGlzdEVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9kb21MaXN0RW51bWVyYXRpb24tZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAyNjg1NjApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9kb21MaXN0RW51
bWVyYXRpb24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02NSwxNCArNjUsNiBAQCBQ
QVNTIHJlc3VsdEFycmF5WzFdLml0ZW0gaXMgY3NzUnVsZUxpc3QuCiBQQVNTIHJlc3VsdEFycmF5
WzJdLmkgaXMgJzInCiBQQVNTIHJlc3VsdEFycmF5WzJdLml0ZW0gaXMgY3NzUnVsZUxpc3QuaXRl
bSgyKQogCi1bb2JqZWN0IENTU1N0eWxlRGVjbGFyYXRpb25dCi1QQVNTIHJlc3VsdEFycmF5WzBd
LmkgaXMgJzAnCi1QQVNTIHJlc3VsdEFycmF5WzBdLml0ZW0gaXMgY3NzU3R5bGVEZWNsYXJhdGlv
bi5pdGVtKDApCi1QQVNTIHJlc3VsdEFycmF5WzFdLmkgaXMgJzEnCi1QQVNTIHJlc3VsdEFycmF5
WzFdLml0ZW0gaXMgY3NzU3R5bGVEZWNsYXJhdGlvbi5pdGVtKDEpCi1QQVNTIHJlc3VsdEFycmF5
WzJdLmkgaXMgJzInCi1QQVNTIHJlc3VsdEFycmF5WzJdLml0ZW0gaXMgY3NzU3R5bGVEZWNsYXJh
dGlvbi5pdGVtKDIpCi0KIFtvYmplY3QgQ1NTVmFsdWVMaXN0XQogUEFTUyByZXN1bHRBcnJheS5s
ZW5ndGggaXMgMTAKIFBBU1MgcmVzdWx0QXJyYXlbMF0uaSBpcyAnMCcKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL2RvbUxpc3RFbnVtZXJhdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL2RvbUxpc3RFbnVtZXJhdGlvbi5odG1sCShyZXZpc2lvbiAyNjg1NjAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9kb21MaXN0RW51bWVyYXRpb24uaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTc3LDE3ICsxNzcsNiBAQCBzaG91bGRCZSgicmVzdWx0QXJyYXlbMV0uaXRl
bSIsICJjc3NSdWxlCiBzaG91bGRCZSgicmVzdWx0QXJyYXlbMl0uaSIsICInMiciKTsKIHNob3Vs
ZEJlKCJyZXN1bHRBcnJheVsyXS5pdGVtIiwgImNzc1J1bGVMaXN0Lml0ZW0oMikiKTsKIAotLy8g
Q1NTU3R5bGVEZWNsYXJhdGlvbgotLy9kZWJ1Zyhlc2NhcGVIVE1MKGRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCdzdHlsZScpKSk7Ci12YXIgY3NzU3R5bGVEZWNsYXJhdGlvbiA9IGRvY3Vt
ZW50LnN0eWxlU2hlZXRzWzJdLmNzc1J1bGVzWzBdLnN0eWxlOwotcmVzdWx0QXJyYXkgPSBpdGVy
YXRlTGlzdChjc3NTdHlsZURlY2xhcmF0aW9uKTsKLXNob3VsZEJlKCJyZXN1bHRBcnJheVswXS5p
IiwgIicwJyIpOwotc2hvdWxkQmUoInJlc3VsdEFycmF5WzBdLml0ZW0iLCAiY3NzU3R5bGVEZWNs
YXJhdGlvbi5pdGVtKDApIik7Ci1zaG91bGRCZSgicmVzdWx0QXJyYXlbMV0uaSIsICInMSciKTsK
LXNob3VsZEJlKCJyZXN1bHRBcnJheVsxXS5pdGVtIiwgImNzc1N0eWxlRGVjbGFyYXRpb24uaXRl
bSgxKSIpOwotc2hvdWxkQmUoInJlc3VsdEFycmF5WzJdLmkiLCAiJzInIik7Ci1zaG91bGRCZSgi
cmVzdWx0QXJyYXlbMl0uaXRlbSIsICJjc3NTdHlsZURlY2xhcmF0aW9uLml0ZW0oMikiKTsKLQog
Ly8gQ1NTVmFsdWVMaXN0CiB2YXIgY3NzVmFsdWVMaXN0ID0gd2luZG93LmdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ29sJylbMF0pLmdldFByb3BlcnR5Q1NT
VmFsdWUoJ2JvcmRlci1zcGFjaW5nJyk7CiByZXN1bHRBcnJheSA9IGl0ZXJhdGVMaXN0KGNzc1Zh
bHVlTGlzdCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9u
L2Nzc3N0eWxlZGVjbGFyYXRpb24tcHJvcGVydGllcy1kZXNjcmlwdG9yLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nz
c3N0eWxlZGVjbGFyYXRpb24tcHJvcGVydGllcy1kZXNjcmlwdG9yLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMjY4NTYwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlv
bi9jc3NzdHlsZWRlY2xhcmF0aW9uLXByb3BlcnRpZXMtZGVzY3JpcHRvci1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw4IEBAIFRoaXMgdGVzdHMgdGhlIGRlc2NyaXB0b3Ig
b2YgQ1NTU3R5bGVEZWMKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGRlc2Ny
aXB0b3JbJ3dyaXRhYmxlJ10gaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yWydnZXQnXSBpcyBhbiBp
bnN0YW5jZSBvZiBGdW5jdGlvbgorUEFTUyBkZXNjcmlwdG9yWydzZXQnXSBpcyBhbiBpbnN0YW5j
ZSBvZiBGdW5jdGlvbgogUEFTUyBkZXNjcmlwdG9yWydlbnVtZXJhYmxlJ10gaXMgdHJ1ZQogUEFT
UyBkZXNjcmlwdG9yWydjb25maWd1cmFibGUnXSBpcyB0cnVlCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0
aW9uL2Nzc3N0eWxlZGVjbGFyYXRpb24tcHJvcGVydGllcy1kZXNjcmlwdG9yLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vQ1NTU3R5bGVEZWNsYXJhdGlvbi9jc3NzdHls
ZWRlY2xhcmF0aW9uLXByb3BlcnRpZXMtZGVzY3JpcHRvci5odG1sCShyZXZpc2lvbiAyNjg1NjAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9DU1NTdHlsZURlY2xhcmF0aW9uL2Nzc3N0eWxlZGVj
bGFyYXRpb24tcHJvcGVydGllcy1kZXNjcmlwdG9yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUs
OCArNSw5IEBACiAgICAgPHNjcmlwdD4KICAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMg
dGhlIGRlc2NyaXB0b3Igb2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiBwcm9wZXJ0aWVzLiIpOwogCi0g
ICAgICAgIHZhciBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihk
b2N1bWVudC5ib2R5LnN0eWxlLCAnY29sb3InKTsKLSAgICAgICAgc2hvdWxkQmVUcnVlKCJkZXNj
cmlwdG9yWyd3cml0YWJsZSddIik7CisgICAgICAgIHZhciBkZXNjcmlwdG9yID0gT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihkb2N1bWVudC5ib2R5LnN0eWxlLl9fcHJvdG9fXywgJ2Nv
bG9yJyk7CisgICAgICAgIHNob3VsZEJlVHlwZSgiZGVzY3JpcHRvclsnZ2V0J10iLCAiRnVuY3Rp
b24iKTsKKyAgICAgICAgc2hvdWxkQmVUeXBlKCJkZXNjcmlwdG9yWydzZXQnXSIsICJGdW5jdGlv
biIpOwogICAgICAgICBzaG91bGRCZVRydWUoImRlc2NyaXB0b3JbJ2VudW1lcmFibGUnXSIpOwog
ICAgICAgICBzaG91bGRCZVRydWUoImRlc2NyaXB0b3JbJ2NvbmZpZ3VyYWJsZSddIik7CiAgICAg
PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2
ODU2MCkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0xMC0xNSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBs
ZS5jb20+CisKKyAgICAgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiBicmVha3MgSlMgc3BlYyAocHJv
cGVydGllcyBub3Qgc2hvd2luZyB1cCBpbiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcykKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzYyMworCisg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3NvbS9jc3NzdHlsZWRlY2xhcmF0aW9uLXByb3BlcnRpZXMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICBVcGRhdGUgdGVzdCByZXN1bHQgbm93IHRoYXQgaXQgaXMgcGFzc2luZy4K
KwogMjAyMC0xMC0xNCAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbY3NzLWZsZXhib3hdIGZsZXgtZ3JvdyBwcm9wZXJ0eSBzaG91bGQgYmUgYW5p
bWF0YWJsZQpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3Nzb20vY3Nzc3R5bGVkZWNsYXJhdGlvbi1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3NvbS9jc3NzdHlsZWRlY2xhcmF0aW9uLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAyNjg1NjApCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3NvbS9jc3NzdHlsZWRlY2xhcmF0aW9uLXByb3BlcnRpZXMtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIENTUyBUZXN0OiBDU1NT
dHlsZURlY2xhcmF0aW9uIHByb3BlcnRpZXMgYXJlIGRlZmluZWQgYXMgV2ViSURMIGF0dHJpYnV0
ZXMsIG5vdCB1c2luZyBnZXRPd25Qcm9wZXJ0eU5hbWVzKCkgYXNzZXJ0X2ZhbHNlOiBzaG91bGRu
J3QgaGF2ZSBhbiBvd24gcHJvcGVydHkgZm9yIFdlYklETCBhdHRyaWJ1dGVzIGV4cGVjdGVkIGZh
bHNlIGdvdCB0cnVlCitQQVNTIENTUyBUZXN0OiBDU1NTdHlsZURlY2xhcmF0aW9uIHByb3BlcnRp
ZXMgYXJlIGRlZmluZWQgYXMgV2ViSURMIGF0dHJpYnV0ZXMsIG5vdCB1c2luZyBnZXRPd25Qcm9w
ZXJ0eU5hbWVzKCkKIApJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL3B1dC1vdmVycmlkZS1zaG91
bGQtbm90LXVzZS1pYy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9wdXQt
b3ZlcnJpZGUtc2hvdWxkLW5vdC11c2UtaWMuaHRtbAkocmV2aXNpb24gMjY4NTYwKQorKysgTGF5
b3V0VGVzdHMvanMvZG9tL3B1dC1vdmVycmlkZS1zaG91bGQtbm90LXVzZS1pYy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC04LDEwICs4LDEwIEBACiA8c2NyaXB0PgogICAgIHRlc3QoZnVuY3Rpb24o
KSB7CiAgICAgICAgIGZ1bmN0aW9uIHRyYW5zaXRpb25lZCgpIHsKLSAgICAgICAgICAgIHN0eWxl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpLnN0eWxlOworICAgICAgICAgICAgZGF0YXNl
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKS5kYXRhc2V0OwogICAgICAgICAgICAgZm9y
KHZhciBpID0gMDsgaSA8IDIwOyBpKyspCi0gICAgICAgICAgICAgICAgc3R5bGVbJ3AnK2ldID0g
aTsKLSAgICAgICAgICAgIHJldHVybiBzdHlsZTsKKyAgICAgICAgICAgICAgICBkYXRhc2V0Wydw
JytpXSA9IGk7CisgICAgICAgICAgICByZXR1cm4gZGF0YXNldDsKICAgICAgICAgfQogCiAgICAg
ICAgIGZ1bmN0aW9uIHB1dHRlcihvKSB7CkluZGV4OiBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90
cmFuc2l0aW9ucy1wYXJzaW5nLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy90cmFuc2l0aW9ucy90cmFuc2l0aW9ucy1wYXJzaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MjY4NTYwKQorKysgTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbnMtcGFyc2luZy1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTYsOCArNiw2IEBAIE9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEEKIFZhbGlkIHRyYW5zaXRpb24tcHJvcGVydHkgdmFs
dWVzLgogUEFTUyBjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25Qcm9wZXJ0eSBpcyAnYWxsJwogUEFT
UyBjb21wdXRlZFN0eWxlLndlYmtpdFRyYW5zaXRpb25Qcm9wZXJ0eSBpcyAnYWxsJwotUEFTUyBP
YmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZigndHJhbnNpdGlvblByb3BlcnR5JykgaXMgbm90IC0x
Ci1QQVNTIE9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd3ZWJraXRUcmFuc2l0aW9uUHJvcGVy
dHknKSBpcyAtMQogUEFTUyBzdHlsZS50cmFuc2l0aW9uUHJvcGVydHkgaXMgJ25vbmUnCiBQQVNT
IGNvbXB1dGVkU3R5bGUudHJhbnNpdGlvblByb3BlcnR5IGlzICdub25lJwogUEFTUyBzdHlsZS53
ZWJraXRUcmFuc2l0aW9uUHJvcGVydHkgaXMgJ25vbmUnCkBAIC0xMDAsOCArOTgsNiBAQCBQQVNT
IGNvbXB1dGVkU3R5bGUud2Via2l0VHJhbnNpdGlvblByb3BlCiBWYWxpZCB0cmFuc2l0aW9uLWR1
cmF0aW9uIHZhbHVlcy4KIFBBU1MgY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gaXMg
JzBzJwogUEFTUyBjb21wdXRlZFN0eWxlLndlYmtpdFRyYW5zaXRpb25EdXJhdGlvbiBpcyAnMHMn
Ci1QQVNTIE9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd0cmFuc2l0aW9uRHVyYXRpb24nKSBp
cyBub3QgLTEKLVBBU1MgT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3dlYmtpdFRyYW5zaXRp
b25EdXJhdGlvbicpIGlzIC0xCiBQQVNTIHN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiBpcyAnMHMn
CiBQQVNTIGNvbXB1dGVkU3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uIGlzICcwcycKIFBBU1Mgc3R5
bGUud2Via2l0VHJhbnNpdGlvbkR1cmF0aW9uIGlzICcwcycKQEAgLTE1MCw4ICsxNDYsNiBAQCBQ
QVNTIGNvbXB1dGVkU3R5bGUud2Via2l0VHJhbnNpdGlvbkR1cmF0CiBWYWxpZCB0cmFuc2l0aW9u
LXRpbWluZy1mdW5jdGlvbiB2YWx1ZXMuCiBQQVNTIGNvbXB1dGVkU3R5bGUudHJhbnNpdGlvblRp
bWluZ0Z1bmN0aW9uIGlzICdlYXNlJwogUEFTUyBjb21wdXRlZFN0eWxlLndlYmtpdFRyYW5zaXRp
b25UaW1pbmdGdW5jdGlvbiBpcyAnZWFzZScKLVBBU1MgT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4
T2YoJ3RyYW5zaXRpb25UaW1pbmdGdW5jdGlvbicpIGlzIG5vdCAtMQotUEFTUyBPYmplY3Qua2V5
cyhzdHlsZSkuaW5kZXhPZignd2Via2l0VHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uJykgaXMgLTEK
IFBBU1Mgc3R5bGUudHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIGlzICdsaW5lYXInCiBQQVNTIGNv
bXB1dGVkU3R5bGUudHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIGlzICdsaW5lYXInCiBQQVNTIHN0
eWxlLndlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbiBpcyAnbGluZWFyJwpAQCAtMzAwLDgg
KzI5NCw2IEBAIFBBU1MgY29tcHV0ZWRTdHlsZS53ZWJraXRUcmFuc2l0aW9uVGltaW4KIFZhbGlk
IHRyYW5zaXRpb24tZGVsYXkgdmFsdWVzLgogUEFTUyBjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25E
ZWxheSBpcyAnMHMnCiBQQVNTIGNvbXB1dGVkU3R5bGUud2Via2l0VHJhbnNpdGlvbkRlbGF5IGlz
ICcwcycKLVBBU1MgT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3RyYW5zaXRpb25EZWxheScp
IGlzIG5vdCAtMQotUEFTUyBPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZignd2Via2l0VHJhbnNp
dGlvbkRlbGF5JykgaXMgLTEKIFBBU1Mgc3R5bGUudHJhbnNpdGlvbkRlbGF5IGlzICcwcycKIFBB
U1MgY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uRGVsYXkgaXMgJzBzJwogUEFTUyBzdHlsZS53ZWJr
aXRUcmFuc2l0aW9uRGVsYXkgaXMgJzBzJwpAQCAtMzUwLDggKzM0Miw2IEBAIFBBU1MgY29tcHV0
ZWRTdHlsZS53ZWJraXRUcmFuc2l0aW9uRGVsYXkKIFZhbGlkIHRyYW5zaXRpb24gc2hvcnRoYW5k
IHZhbHVlcy4KIFBBU1MgY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uIGlzICdhbGwgMHMgZWFzZSAw
cycKIFBBU1MgY29tcHV0ZWRTdHlsZS53ZWJraXRUcmFuc2l0aW9uIGlzICdhbGwgMHMgZWFzZSAw
cycKLVBBU1MgT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3RyYW5zaXRpb24nKSBpcyBub3Qg
LTEKLVBBU1MgT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3dlYmtpdFRyYW5zaXRpb24nKSBp
cyAtMQogUEFTUyBzdHlsZS50cmFuc2l0aW9uIGlzICdub25lJwogUEFTUyBjb21wdXRlZFN0eWxl
LnRyYW5zaXRpb24gaXMgJ25vbmUgMHMgZWFzZSAwcycKIFBBU1Mgc3R5bGUud2Via2l0VHJhbnNp
dGlvbiBpcyAnbm9uZScKSW5kZXg6IExheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb25z
LXBhcnNpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFu
c2l0aW9ucy1wYXJzaW5nLmh0bWwJKHJldmlzaW9uIDI2ODU2MCkKKysrIExheW91dFRlc3RzL3Ry
YW5zaXRpb25zL3RyYW5zaXRpb25zLXBhcnNpbmcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzAs
OCArMzAsNiBAQCBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uUHJvcGVyCiBzaG91
bGRCZSgiY29tcHV0ZWRTdHlsZS53ZWJraXRUcmFuc2l0aW9uUHJvcGVydHkiLCAiJ2FsbCciKTsK
IAogc3R5bGUudHJhbnNpdGlvblByb3BlcnR5ID0gIm5vbmUiOwotc2hvdWxkTm90QmUoIk9iamVj
dC5rZXlzKHN0eWxlKS5pbmRleE9mKCd0cmFuc2l0aW9uUHJvcGVydHknKSIsICItMSIpOwotc2hv
dWxkQmUoIk9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd3ZWJraXRUcmFuc2l0aW9uUHJvcGVy
dHknKSIsICItMSIpOwogc2hvdWxkQmUoInN0eWxlLnRyYW5zaXRpb25Qcm9wZXJ0eSIsICInbm9u
ZSciKTsKIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLnRyYW5zaXRpb25Qcm9wZXJ0eSIsICInbm9u
ZSciKTsKIHNob3VsZEJlKCJzdHlsZS53ZWJraXRUcmFuc2l0aW9uUHJvcGVydHkiLCAiJ25vbmUn
Iik7CkBAIC0xNzYsOCArMTc0LDYgQEAgc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJhbnNpdGlv
bkR1cmF0aQogc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUud2Via2l0VHJhbnNpdGlvbkR1cmF0aW9u
IiwgIicwcyciKTsKIAogc3R5bGUudHJhbnNpdGlvbkR1cmF0aW9uID0gIjBzIjsKLXNob3VsZE5v
dEJlKCJPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZigndHJhbnNpdGlvbkR1cmF0aW9uJykiLCAi
LTEiKTsKLXNob3VsZEJlKCJPYmplY3Qua2V5cyhzdHlsZSkuaW5kZXhPZignd2Via2l0VHJhbnNp
dGlvbkR1cmF0aW9uJykiLCAiLTEiKTsKIHNob3VsZEJlKCJzdHlsZS50cmFuc2l0aW9uRHVyYXRp
b24iLCAiJzBzJyIpOwogc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJhbnNpdGlvbkR1cmF0aW9u
IiwgIicwcyciKTsKIHNob3VsZEJlKCJzdHlsZS53ZWJraXRUcmFuc2l0aW9uRHVyYXRpb24iLCAi
JzBzJyIpOwpAQCAtMjU2LDggKzI1Miw2IEBAIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLnRyYW5z
aXRpb25UaW1pbmcKIHNob3VsZEJlKCJjb21wdXRlZFN0eWxlLndlYmtpdFRyYW5zaXRpb25UaW1p
bmdGdW5jdGlvbiIsICInZWFzZSciKTsKIAogc3R5bGUudHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9u
ID0gImxpbmVhciI7Ci1zaG91bGROb3RCZSgiT2JqZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3Ry
YW5zaXRpb25UaW1pbmdGdW5jdGlvbicpIiwgIi0xIik7Ci1zaG91bGRCZSgiT2JqZWN0LmtleXMo
c3R5bGUpLmluZGV4T2YoJ3dlYmtpdFRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbicpIiwgIi0xIik7
CiBzaG91bGRCZSgic3R5bGUudHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uIiwgIidsaW5lYXInIik7
CiBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24iLCAiJ2xp
bmVhciciKTsKIHNob3VsZEJlKCJzdHlsZS53ZWJraXRUcmFuc2l0aW9uVGltaW5nRnVuY3Rpb24i
LCAiJ2xpbmVhciciKTsKQEAgLTQ4NSw4ICs0NzksNiBAQCBzaG91bGRCZSgiY29tcHV0ZWRTdHls
ZS50cmFuc2l0aW9uRGVsYXkiCiBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS53ZWJraXRUcmFuc2l0
aW9uRGVsYXkiLCAiJzBzJyIpOwogCiBzdHlsZS50cmFuc2l0aW9uRGVsYXkgPSAiMHMiOwotc2hv
dWxkTm90QmUoIk9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd0cmFuc2l0aW9uRGVsYXknKSIs
ICItMSIpOwotc2hvdWxkQmUoIk9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd3ZWJraXRUcmFu
c2l0aW9uRGVsYXknKSIsICItMSIpOwogc2hvdWxkQmUoInN0eWxlLnRyYW5zaXRpb25EZWxheSIs
ICInMHMnIik7CiBzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS50cmFuc2l0aW9uRGVsYXkiLCAiJzBz
JyIpOwogc2hvdWxkQmUoInN0eWxlLndlYmtpdFRyYW5zaXRpb25EZWxheSIsICInMHMnIik7CkBA
IC01NjUsOCArNTU3LDYgQEAgc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUudHJhbnNpdGlvbiIsICIn
YQogc2hvdWxkQmUoImNvbXB1dGVkU3R5bGUud2Via2l0VHJhbnNpdGlvbiIsICInYWxsIDBzIGVh
c2UgMHMnIik7CiAKIHN0eWxlLnRyYW5zaXRpb24gPSAibm9uZSI7Ci1zaG91bGROb3RCZSgiT2Jq
ZWN0LmtleXMoc3R5bGUpLmluZGV4T2YoJ3RyYW5zaXRpb24nKSIsICItMSIpOwotc2hvdWxkQmUo
Ik9iamVjdC5rZXlzKHN0eWxlKS5pbmRleE9mKCd3ZWJraXRUcmFuc2l0aW9uJykiLCAiLTEiKTsK
IHNob3VsZEJlKCJzdHlsZS50cmFuc2l0aW9uIiwgIidub25lJyIpOwogc2hvdWxkQmUoImNvbXB1
dGVkU3R5bGUudHJhbnNpdGlvbiIsICInbm9uZSAwcyBlYXNlIDBzJyIpOwogc2hvdWxkQmUoInN0
eWxlLndlYmtpdFRyYW5zaXRpb24iLCAiJ25vbmUnIik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>